Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用delete键清除vb.net中多个文本框中的聚焦文本框_Vb.net - Fatal编程技术网

使用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。

我想要一个使用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。但它会清除所有文本框,而不是清除聚焦的文本框。

有一种更简单的方法

只需将所有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?清除实际问题是如何访问当前具有焦点的控件。这是你应该自己研究的。这不难找到。是的。。。请提供代码