使用delete键清除vb.net中多个文本框中的聚焦文本框
我想要一个使用delete键在多个文本框中清除聚焦文本框的好例子。请帮我提供vb.net代码 公共分包商为:使用delete键清除vb.net中多个文本框中的聚焦文本框,vb.net,Vb.net,我想要一个使用delete键在多个文本框中清除聚焦文本框的好例子。请帮我提供vb.net代码 公共分包商为: Public Sub EmptyTxt(ByVal Frm As Form) Dim Ctl As Control For Each Ctl In Frm.Controls 'If TypeOf Ctl Is TextBox Then Ctl.Text = "" Next End Sub 然后我从delete keydown事件调用这个sub。
Public Sub EmptyTxt(ByVal Frm As Form)
Dim Ctl As Control
For Each Ctl In Frm.Controls
'If TypeOf Ctl Is TextBox Then Ctl.Text = ""
Next
End Sub
然后我从delete keydown事件调用这个sub。但它会清除所有文本框,而不是清除聚焦的文本框。有一种更简单的方法 只需将所有textbox按键事件分配给同一个处理程序。在该处理程序中,将发送者强制转换为文本框并清除它
Private Sub Form1_Load (sender As Object, e As EventArgs) Handles MyBase.Load
For Each tb As TextBox In Controls.OfType(Of TextBox)
AddHandler tb.KeyDown, AddressOf TbKeyDown
Next
End Sub
Private Sub TbKeyDown (sender As Object, e As KeyEventArgs)
Dim tb = CType(sender, TextBox)
If e.KeyCode = Keys.Delete Then
tb.Clear()
End If
End Sub
你试过什么?在你的问题下面添加带有编辑链接的格式化代码。当然,这样做是因为它是这样写的。您需要在For..Each循环中检查Ctl是否为焦点,如果为Ctl.Focus,则执行您需要执行的任何操作,如果为,则应使用exit For退出循环,如果For..Each块后没有更多代码要执行,则返回,如代码段所示。此外,您还可以:Controls.OfTypeOf TextBox.wherefunctiona、 Focus.FirstOrDefault?清除实际问题是如何访问当前具有焦点的控件。这是你应该自己研究的。这不难找到。是的。。。请提供代码