当C#WinForms文本框接收到焦点时,我希望它的行为类似于浏览器的地址栏.
要了解我的意思,请单击web浏览器的地址栏.您会注意到以下行为:
- 如果文本框之前没有聚焦,点击文本框应该 Select 所有文本.
- 在文本框中按下鼠标并拖动应该只 Select 我用鼠标突出显示的文本.
- 如果文本框已经聚焦,单击不会 Select 所有文本.
- 以编程方式或通过键盘Tab键聚焦文本框应 Select 所有文本.
我想在WinForms中做到这一点.
FASTEST GUN ALERT: please read the following before answering!谢谢,伙计们.:-)
Calling .SelectAll() during the .Enter or .GotFocus events won't work因为如果用户点击
Calling .SelectAll() during the .Click event won't work,因为用户不能用鼠标 Select 任何文本;.SelectAll()调用将不断覆盖用户的文本 Select .
Calling BeginInvoke((Action)textbox.SelectAll) on focus/enter event enter doesn't work因为它违反了上面的规则2,所以它将一直覆盖用户在焦点上的 Select .