WPF将焦点设置为Combobox

时间:2014-01-06 23:34:03

标签: c# wpf combobox focus

只需在新的WPF应用程序中放置一个按钮和一个组合框

在按钮上单击,只需使用comboBox1.Focus()(或任何其他可能的内容)将焦点设置为组合框

问题:

1-从代码设置焦点(带焦点())时,组合框永远不会得到焦点。为什么呢?

2-使用Tab键导航时,组合框会获得焦点并在控件周围显示一种焦点选择器?有没有办法从代码中做同样的事情(一个真正的焦点)?

由于

4 个答案:

答案 0 :(得分:0)

我认为它确实有效 - 问题在于,在不可编辑的ComboBox中,很难直观地判断焦点是否存在。

如果添加IsEditable =“True”,您将看到单击按钮时光标将移动到ComboBox。

使用Tab键看到的焦点选择器是键盘焦点。试试这个:在您的应用上,无需编辑ComboBox,导航到按钮并按空格键。您将看到ComboBox周围出现矩形选择,因为键盘焦点将移动到那里。

答案 1 :(得分:0)

焦点样式(虚线)仅在我们使用Tab键时出现..为什么组合框只能在按钮点击时焦点而不是焦点样式。但是你可以通过打开下拉列表来显示焦点

     private void Button_Click_1(object sender, RoutedEventArgs e)
    {                              
         Cmb.Focus();
         Cmb.IsDropDownOpen = true;                                
    }

对不起,如果我对你的做法不对。

答案 2 :(得分:0)

了解组合框的selectionboxitem,它负责在comobox编辑区域中进行选择。尝试将IsSelected与Focus属性一起设置。

与Winforms相比,焦点处理有很多新的东西,只有选择和焦点。检查API:

http://msdn.microsoft.com/en-us/library/system.windows.controls.combobox%28v=vs.110%29.aspx

答案 3 :(得分:0)

如果您已对重组框进行了重新设置,请注意" OverridesDefaultStyle"。将此设置为true可以隐藏虚线焦点矩形。