Trong một ứng dụng WPF, tôi có một cửa sổ có nhiều trường. Khi người dùng sử dụng phím TAB sau khi điền vào từng trường, cửa sổ hiểu rằng nó sẽ chuyển sang trường tiếp theo. Đây là hành vi khá biết.Làm cách nào để mô phỏng phím bấm Tab khi Return được nhấn trong ứng dụng WPF?
Bây giờ những gì tôi muốn, là làm cho nó mô phỏng phím TAB, khi trên thực tế RETURN được nhấn. Vì vậy, trong XAML WPF tôi thêm bao hàm KeyDown="userPressEnter"
Và trong mã đằng sau nó:
private void userPressEnter(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return)
{
e.Key = Key.Tab // THIS IS NOT WORKING
}
}
Bây giờ, rõ ràng đây không phải là làm việc. Nhưng những gì tôi không biết là, làm thế nào để tôi thực hiện công việc này?
EDIT 1 ==> tìm ra giải pháp
tôi tìm thấy một cái gì đó đã giúp tôi ra =)
private void userPressEnter(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return)
{
TraversalRequest request = new TraversalRequest(FocusNavigationDirection.Next);
MoveFocus(request);
}
}
Bằng cách này, Focus di chuyển trên tiếp theo nó có thể tìm :)
Bằng cách mô phỏng tab bạn muốn di chuyển con trỏ đến trường tiếp theo trong cửa sổ? – Tudor
Yea, di chuyển nó sang trình xử lý tiếp theo, để có thể là một trường hoặc một nút. Vì vậy, mô phỏng hành vi tương tự như nếu người dùng có thể đã nhấn TAB. Đó là lý do tại sao tôi chỉ đơn giản là cố gắng cung cấp cho hệ thống đầu vào TAB, khi thực tế RETURN được nhấn. – Dante1986
Vấn đề của giải pháp của bạn: Bạn cần thêm nó vào mọi điều khiển đơn, nếu không MoveFocus sẽ không chọn đúng trường tiếp theo. – Sam