相关疑难解决方法(0)

如何在WPF TextBox中自动选择焦点上的所有文本?

如果我SelectAllGotFocus事件处理程序调用它,它对鼠标不起作用 - 一旦释放鼠标,选择就会消失.

编辑:人们都喜欢Donnelle的回答,我会试着解释为什么我不喜欢它和接受的答案一样多.

  • 它更复杂,而接受的答案以更简单的方式做同样的事情.
  • 接受答案的可用性更好.当您单击文本中间时,释放鼠标时文本将被取消选中,允许您立即开始编辑,如果您仍想选择全部,只需再次按下按钮,这次它将不会在发布时取消选择.按照Donelle的配方,如果我在文本中间单击,我必须单击第二次才能编辑.如果我单击文本中的某个位置而不是文本外部,这很可能意味着我想开始编辑而不是覆盖所有内容.

.net silverlight wpf textbox

210
推荐指数
13
解决办法
14万
查看次数

制作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 ×2

textbox ×2

silverlight ×1

user-interface ×1

winforms ×1

wpf ×1