我有一個ComboBox聲明如下:選擇組合框的文本
<ComboBox Name="txtUserName" IsEditable="True" />
我想選擇焦點組合框的文本字段,但我無法弄清楚如何做到這一點。目前,當ComboBox以編程方式聚焦(通過「txtUserName.Focus()」)時,它允許用戶滾動瀏覽不同的項目,但需要額外的點擊以突出顯示文本字段。
有什麼想法?
我有一個ComboBox聲明如下:選擇組合框的文本
<ComboBox Name="txtUserName" IsEditable="True" />
我想選擇焦點組合框的文本字段,但我無法弄清楚如何做到這一點。目前,當ComboBox以編程方式聚焦(通過「txtUserName.Focus()」)時,它允許用戶滾動瀏覽不同的項目,但需要額外的點擊以突出顯示文本字段。
有什麼想法?
我使用的解決方案是將下面的代碼添加到窗口的加載事件:
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
試試這個:
if (txtUserName.Items.Count > 0)
{
txtUserName.SelectedIndex = 0;
}
此外,您可能需要使用不同的前綴,如 「CBO」。代碼的其他讀者會認爲它是一個文本框,而不是一個組合框。
嘗試添加組合框模板,像這樣:
<ComboBox Name="txtUserName" IsEditable="True">
<ComboBox.Template>
<ControlTemplate>
<TextBox Text="{Binding Path=/*your property*/}"/>
</ControlTemplate>
</ComboBox.Template>
</ComboBox>
這可能是ComboBox默認處理焦點的方式。如果你想改變這一點,你必須更深入。有一些類似的問題,它們可能是有用的:[問題一](http://stackoverflow.com/questions/2963462/how-to-add-a-focus-to-an-editable-combobox-in-wpf) ,[問題二](http://stackoverflow.com/questions/2151285/wpf-selecting-all-the-text-in-and-setting-focus-to-a-comboboxs-editable-textbo)。 – icebat
你是什麼意思?當我使用箭頭滾動它的亮點。 – Paparazzi
在您的第一個鏈接@icebat中找到解決方案 –