149
|
Judah Gabriel Himango · 技术社区 · 16 年前 |
1
104
首先,谢谢你的回答!9个答案。谢谢您。 坏消息:所有的答案都有一些怪癖或者不太正确(或者根本不正确)。我已经为你的每一篇文章添加了评论。 好消息:我找到了一种方法让它发挥作用。这个解决方案非常简单,似乎适用于所有场景(鼠标向下移动、选择文本、切换焦点等)。
据我所知,这会导致文本框的行为与Web浏览器的地址栏完全相同。 希望这能帮助下一个试图解决这个看似简单的问题的人。 再次感谢,伙计们,你们所有的答案都帮助我走上了正确的道路。 |
2
72
我找到了一个更简单的解决办法。它涉及异步启动selectall,使用
C中:
在vb.net中(感谢 Krishanu Dey )
|
3
29
您的解决方案是好的,但在一个特定的案例中失败了。如果通过选择文本范围而不是单击来为文本框提供焦点,则alreadyFocused标志不会设置为true,因此当您第二次单击文本框时,所有文本都会被选中。 这是我的解决方案版本。我还将代码放入了一个继承文本框的类中,这样逻辑就可以很好地隐藏起来。
|
4
8
有点笨拙,但在你的点击事件中,使用
|
5
4
单击文本框事件?或者即使是鼠标被重新更改的事件也对我有效。好的。不起作用。 所以你必须做两件事:
用于制表(通过文本框到文本框)以及在Enter中调用selectall(),以防万一… |
6
4
我用一句话回答你…你可能在踢自己… 在Enter事件中: txtfilter.beginInvoke(新的MethodInvoker(txtfilter.selectAll)); |
7
3
好的,在尝试之后,这里是您想要的:
这选择了条目上的所有文本,但允许我随后突出显示部分文本,或允许您在第一次单击时突出显示。 按要求:
对于我来说,控件中的制表符选择所有文本。 |
8
3
下面是一个帮助函数,它将解决方案提升到下一个层次——无需继承即可重用。
要使用它,只需调用传递文本框的函数,它就可以为您处理所有混乱的位。我建议在窗体“加载事件”中连接所有文本框。您可以将此函数放在表单中,或者如果您喜欢我,可以将其放在实用程序类中的某个位置,以便进一步重用。 |
9
2
这适用于wpf/xaml文本框。
|
10
2
这和 nzhenry 很流行的答案,但我发现不必进行子类划分更容易:
|
11
1
selectall从未为我工作过。 这是可行的。
|
12
1
我找到了一个更简单的解决方案: 要确保在单击文本框时选中所有文本,请确保单击处理程序调用Enter处理程序。不需要额外的变量! 例子:
|
13
0
|
14
0
有趣的是,我认为一个DropDownStyle=Simple的组合框几乎完全符合你想要的行为。 (如果将控件的高度降低到不显示列表,然后再增加几个像素,则组合框和文本框之间没有有效的区别。) |
15
0
为什么不简单地使用文本框的mousedown事件?它对我来说很好,不需要额外的布尔值。非常干净和简单,例如:
|
16
0
我在mouseup事件中调用了selectall,它对我很好。
|
17
0
只需从textbox或maskedtextbox派生类:
把它用在你的表格上。 |
18
0
你试过了吗? the solution suggested on the MSDN Forum "Windows Forms General" 哪个只是文本框的子类? |
19
0
实际上,gotfocus是您感兴趣的正确事件(真正的消息),因为无论您如何获得控制权,您最终都会获得控制权。问题是何时调用selectAll()。 试试这个:
|
20
0
对于表单中的一组文本框:
|
21
0
下面的内容似乎有效。 Enter事件处理控件的选项卡,当单击控件时,鼠标悬停将工作。
|
22
0
我知道这已经解决了,但我有一个建议,我认为这实际上相当简单。 在鼠标悬停事件中,您所要做的就是
它在vb.net中似乎对我有用(我知道这是一个c问题…不幸的是,我不得不在工作中使用vb。我遇到了这个问题,这就是我来到这里的原因……) 我还没有发现任何问题……除了它没有立即选择点击,但我有问题… |
23
0
以下解决方案适用于我。我补充说
|
24
0
离开控件时设置selection。你回来的时候它就在那儿。选项卡,当您返回控件时,所有文本都将被选中。 如果使用鼠标进入,则插入符号将正确放置在单击的点上。
|
25
0
实际上,答案可能比上述所有问题都要简单得多,例如(在wpf中):
当然,我不知道您想如何使用这段代码,但这里要看的主要部分是:首先调用.focus(),然后调用.selectall(); |
26
0
非常简单的解决方案:
编辑: 最初的操作特别关注鼠标向下/文本选择/鼠标向上顺序,在这种情况下,上述简单的解决方案将以部分选定的文本结束。 这应该解决*问题(实际上我截取wm_setcursor):
*实际上,以下顺序以部分文本选择结束,但如果将鼠标移到文本框上,所有文本都将再次被选择: 鼠标向下/文本选择/鼠标移出文本框/鼠标向上 |
27
0
只需在Enter和Click事件上使用selectAll()。
|
28
0
当鼠标单击而不立即释放时,我发现这是最有效的方法:
|
29
0
我的解决方案很原始,但对我来说效果很好
|
30
0
这在.NET 2005中对我有效-
|
JOO · 使用udpClient从多个IP地址连续接收数据 2 年前 |
Futterkiste · 函数比例图 2 年前 |
user18789895 · 我应该如何验证WinForms应用程序? 2 年前 |
beriscen · 如何使整个链接标签区域可点击? 2 年前 |
lpmaxim · 当鼠标光标悬停在按钮上时,背景图像会移动 2 年前 |