KeyDown上的水印困境

时间:2011-12-02 03:49:35

标签: c# silverlight keydown

我遇到水印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语句。有任何想法吗?感谢所有回复。

1 个答案:

答案 0 :(得分:1)

不确定Watermark是什么,但通常这是因为你拦截Tab并做某事,然后事件冒泡并被默认处理程序再次处理。

尝试使用该事件,这样就不会发生这种情况。可能像e.preventDefault()或e.stopPropagation()