我已經得到如何在TextBox上單擊時選擇所有文本;我想爲可編輯的組合框執行相同的操作 - 找到任何東西。我的TextBox代碼是WPF可編輯ComboBox SelectAll單擊時
private void OnPreviewMouseDown(Object sender, MouseButtonEventArgs e)
{
txtBox.SelectAll();
txtBox.Focus();
e.Handled = true;
}
對於可編輯組合框,同樣可以做什麼?
更新 代碼COMBOX,讓我說,我想要的輸出:
private void cboMouseDown(object sender, MouseButtonEventArgs e)
{
var textBox = (cbo.Template.FindName("PART_EditableTextBox", cbo) as TextBox);
if (textBox != null)
{
textBox.SelectAll();
cbo.Focus();
e.Handled = true;
}
}
但是現在的組合框的下拉不起作用,任何建議?
更新-2:而不是PreviewMouseDown - 我試過了PreviewMouseUp,現在下拉菜單確實出現了;但是一旦點擊了該框,然後嘗試打開下拉菜單 - 窗口就會凍結。 不過,我已經做了一個工作,我已經把我的答案放在下面。我真的很感激你的意見,但如果這是一個正確的和安全的解決方案,我可以一起去。這樣
var comboTextBoxChild = comboBox.FindChild(typeof(TextBox), "PART_EditableTextBox") as TextBox;
comboTextBoxChild .SelectAll();
做一次你爲什麼不使用'Focus'事件(在兩個控件上)?鼠標事件在所有情況下都不起作用(鍵盤導航,觸摸...)。 – ChrFin
在GotFocus上默認選擇了文字。我的要求是輸入一些字符後,如果用戶點擊他鍵入的內容 - 整個文本被選中,以便他可以重新開始。默認行爲雖然是當你第一次點擊整個文本被選中,但在下一次單擊時,光標會轉到您單擊的位置,並且文本保持未選中狀態。 – marifrahman
**只是檢查出這些鏈接 - ** [選擇組合框的文本] [1] [如何將焦點添加到WPF可編輯ComboBox] [2] [1]:HTTP:// stackoverflow.com/q/19728650/2025489 [2]:http://stackoverflow.com/a/2964222/2025489 – LogicalDesk