进退两难的水印在KeyDown
本文关键字:KeyDown 进退两难 | 更新日期: 2023-09-27 18:16:19
我有一个水印按键的问题。我有一个像这样的keydown事件处理程序。
if (e.Key == Key.Tab)
{
FocusManager.GetFocusedElement();
if (FocusManager.GetFocusedElement() == txtPassword)
btnLogin.Focus();
else if (FocusManager.GetFocusedElement() == txtUserName)
txtPassword.Focus();
else
txtUserName.Focus();
}
它工作得很好,但是当焦点在btnLogin上时,当你按tab键时,焦点直接转到密码框。我插入了断点,但无济于事。它只传递一次代码,然后进入else语句。什么好主意吗?谢谢大家的回复。
不确定水印是什么,但通常这是由您拦截Tab并做某事引起的,然后事件冒泡并由默认处理程序再次处理。
尝试消费事件,这样就不会发生这种情况。可能是e.p preventdefault()或e.p stoppropagation ()