我遇到水印keydown的问题。我有这样的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语句。有任何想法吗?感谢所有回复。
答案 0 :(得分:1)
不确定Watermark是什么,但通常这是因为你拦截Tab并做某事,然后事件冒泡并被默认处理程序再次处理。
尝试使用该事件,这样就不会发生这种情况。可能像e.preventDefault()或e.stopPropagation()