进退两难的水印在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语句。什么好主意吗?谢谢大家的回复。

进退两难的水印在KeyDown

不确定水印是什么,但通常这是由您拦截Tab并做某事引起的,然后事件冒泡并由默认处理程序再次处理。

尝试消费事件,这样就不会发生这种情况。可能是e.p preventdefault()或e.p stoppropagation ()