选择ComboBox文本

时间:2013-11-01 14:21:28

标签: c# wpf combobox

我有一个ComboBox声明如下:

<ComboBox Name="txtUserName" IsEditable="True" />

我想在焦点上选择ComboBox的文本字段,但我无法弄清楚如何执行此操作。目前,当ComboBox以编程方式(通过“txtUserName.Focus()”)聚焦时,它允许用户滚动浏览不同的项目,但需要额外点击以突出显示文本字段。

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

试试这个:

if (txtUserName.Items.Count > 0)
{
    txtUserName.SelectedIndex = 0;
}

此外,您可能希望使用不同的前缀,例如“cbo”。 该代码的其他读者将假设它是一个文本框,而不是组合框。

答案 1 :(得分:0)

尝试添加comboBox模板,如下所示:

<ComboBox Name="txtUserName" IsEditable="True">
        <ComboBox.Template>
          <ControlTemplate>
              <TextBox Text="{Binding Path=/*your property*/}"/>
           </ControlTemplate>
         </ComboBox.Template>
 </ComboBox>

答案 2 :(得分:0)

我使用的解决方案是将以下代码添加到窗口加载的事件中:

var textBox = (txtUserName.Template.FindName("PART_EditableTextBox", txtUserName) as TextBox);
if (textBox != null)
{
      textBox.Focus();
      textBox.SelectionStart = textBox.Text.Length;
 }

解决方案来自这里建议的答案之一:How to add a focus to an editable ComboBox in WPF