2010-11-11 84 views
6

使用C#當我雙擊時,如何選擇文本框中的所有文本?我的文本包含空格「這是一個測試」,當我默認雙擊時只有一個單詞被突出顯示,我如何突出顯示所有文本?C#如何在雙擊時選擇文本框中的所有文本?

我想實現的是用戶清除文本texbox的快捷方式,文本超出了框的長度,因此您無法選擇結束並拖回到刪除,您必須單擊並使用退格鍵和刪除鍵清除文本。

感謝 艾莉森

+0

常見的「解決方案」是在OnFocus事件中選中所有的「解決方案」(請參閱​​Ardman答案)。雙擊選擇全部文本並不常見,因此您的用戶不知道它存在。 – 2010-11-11 14:19:37

+0

您也可以考慮在收到焦點時選擇文本框中的所有文本(使用Tab鍵或鼠標單擊,例如Web瀏覽器中的地址欄 - 請參閱文本框的OnFocus事件)。這仍然提供了一種快速刪除文本的方式,而不會丟失許多用戶會認爲能夠雙擊來選擇單詞的默認行爲。 – 2010-11-11 14:20:30

+0

教你的用戶關於'Ctrl + a',或者使TextBox的文本換行(可能由於設計/屏幕空間問題而不可能)也許是有用的 – vlad 2010-11-11 14:20:34

回答

4
TextBox tb = new TextBox(); 
tb.SelectAll(); 

文本框有一個SelectAll方法,您可以使用。將其添加到雙擊事件處理程序中。

1

假設我們正在談論WindowsForms,那麼所有你需要做的就是附加一個事件處理程序,以DoubleClick事件並調用全選

private void sampleTextBox_DoubleClick(object sender, EventArgs e) 
{ 
    sampleTextBox.SelectAll(); 
} 
+0

你可以這樣做:((TextBox)sender).SelectAll(); ...這有點整潔 – nashwan 2017-04-26 09:35:44

1

該文本框控件公開了SelectionStart和Selection Length屬性。

您只需簡單地連線文本框的雙擊事件即可設置這些屬性。

SelectionStart將爲0. SelectionLength將是文本的長度(可由Text屬性輕鬆確定)。

On編輯: 上述使用SelectAll()的解決方案要容易得多。

+3

有一個SelectAll方法時有點矯枉過正。 – 2010-11-11 14:19:20

+0

確實。我記得我需要突出顯示部分文本的某些代碼的SelectionStart&Length。甚至沒有意識到有一個更爲簡單的解決方案。這就是智能感知的目的。 – 2010-11-11 14:21:06

2

三重點擊可以選擇全款。如果你改變雙擊行爲,選詞可能會有點困難。