相关疑难解决方法(0)

制作WinForms TextBox的行为与浏览器的地址栏相似

当C#WinForms文本框获得焦点时,我希望它的行为类似于浏览器的地址栏.

要查看我的意思,请单击您的Web浏览器的地址栏.您会注意到以下行为:

  1. 如果文本框之前没有聚焦,则单击文本框应选择所有文本.
  2. 鼠标按下并在文本框中拖动应该只选择我用鼠标突出显示的文本.
  3. 如果文本框已经聚焦,则单击不会选择所有文本.
  4. 以编程方式或通过键盘选项卡聚焦文本框应选择所有文本.

我想在WinForms中做到这一点.

最快的枪声:请在回答之前阅读以下内容!多谢你们.:-)

在.Enter或.GotFocus事件期间调用.SelectAll()将不起作用,因为如果用户单击文本框,则插入符号将被放置在他单击的位置,从而取消选择所有文本.

在.Click事件期间调用.SelectAll()将不起作用,因为用户将无法使用鼠标选择任何文本; .SelectAll()调用将继续覆盖用户的文本选择.

在焦点/输入事件输入上调用BeginInvoke((Action)textbox.SelectAll)不起作用,因为它违反了上面的规则#2,它将继续覆盖用户对焦点的选择.

.net user-interface textbox winforms

151
推荐指数
4
解决办法
12万
查看次数

标签 统计

.net ×1

textbox ×1

user-interface ×1

winforms ×1