2010-11-11 86 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

三重点击可以选择全款。如果你改变双击行为,选词可能会有点困难。