C# 按tab键wpf时出错
我有一个简单的窗口,其中包括两个字段:C# 按tab键wpf时出错,c#,wpf,C#,Wpf,我有一个简单的窗口,其中包括两个字段: <TextBox Grid.Column="1" HorizontalAlignment="Left" Height="21" Margin="10,25,0,0" Grid.Row="1" Name="textbox_login" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="227" KeyDown="textbox_login_KeyDown"/>
<TextBox Grid.Column="1" HorizontalAlignment="Left" Height="21" Margin="10,25,0,0" Grid.Row="1" Name="textbox_login" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="227" KeyDown="textbox_login_KeyDown"/>
<PasswordBox Grid.Column="1" HorizontalAlignment="Left" Height="22" Margin="10,25,0,0" Grid.Row="2" Name="passwordBox_mdp" VerticalAlignment="Top" Width="227" KeyDown="passwordBox_mdp_KeyDown"/>
此错误发生在我的所有windows/UC上,即使没有任何字段(只有文本块)
我根本不知道如何解决这个问题。我在模式对话框中遇到了类似的错误。为了调试,我在对话框中添加了PreviewLostKeyboardFocus事件处理程序。通过检查KeyboardFocusChangedEventArgs NewFocus属性,我知道焦点更改在哪个控件上遇到了问题 对我来说,它发生在从关闭按钮切换到对话框中的选项卡项时。为了解决这个问题,我在TabItem上设置了KeyboardNavigation.IsTabStop=“false”,这样在改变焦点时点击tab键就会忽略TabItem。我的选项卡项如下所示:
<TabItem Name="MyTab" Header="Test Header" VerticalContentAlignment="Stretch"
VerticalAlignment="Stretch" Height="Auto" KeyboardNavigation.IsTabStop="False">
可能有更好的解决方案,但这可以防止出现异常。在这些KeyDown处理程序中您做什么?我在这个窗口中只有2个KeyDown处理程序:private void textbox\u login\u KeyDown(object sender,KeyEventArgs e){if(e.Key==Key.Enter){valider();}private void passwordBox_mdp_KeyDown(object sender,KeyEventArgs e){if(e.Key==Key.Enter){valider();}}如果您注释掉那些调用
valider()
,错误是否消失?不,错误也会出现在没有任何KeyDown处理程序的窗口上。
<TabItem Name="MyTab" Header="Test Header" VerticalContentAlignment="Stretch"
VerticalAlignment="Stretch" Height="Auto" KeyboardNavigation.IsTabStop="False">