单击时选择文本 vb.net

Select Text on click vb.net

提问人:Daniele Spadola 提问时间:11/4/2023 最后编辑:Daniele Spadola 更新时间:11/4/2023 访问量:47

问:

我有一个带有 vb.net 的表单,其中有相当多的文本框供用户输入数据。 我想确保当用户单击文本框时,文本被选中,以便他可以输入他的数据。 我尝试使用代码,但是当我单击文本框时,它会选择所有这些代码:

   Private Sub selection(sender As Object, e As EventArgs) Handles txtVendita1.MouseClick, txtSchedaEm1.MouseClick ..other textbox..
        txtVendita1.SelectAll()
        txtSchedaEm1.SelectAll()
        ..
    End Sub

我应该制作尽可能多的私有潜艇,有没有办法简化代码?

vb.net

评论

1赞 Hans Passant 11/4/2023
使用 Enter 事件,以便在用户使用键盘导航时它仍然有效。执行此操作的最佳方法是向项目添加一个类,该类派生自 TextBox。覆盖 OnEnter(),现在它适用于您添加到表单中的每个表单。

答:

2赞 jmcilhinney 11/4/2023 #1

这就是为什么你应该了解事件的实际运作方式。在事件处理程序中,参数始终是对引发事件的对象的引用。这样,您可以使用单个方法处理多个事件,并始终访问正确的对象,例如sender

Dim tb = DirectCast(sender, TextBox)

强制转换是必需的,因为参数是 type ,因此它可以引用任何类型的对象。Object

评论

0赞 Daniele Spadola 11/6/2023
谢谢你的回答。我试过这个: Private Sub TextBox1_Click(sender As Object, e As EventArgs) 处理 TextBox1.Click Dim textBox As TextBox = DirectCast(sender, TextBox) textBox.SelectAll() End Sub 但是 textbox.selectall() 不起作用