所有控制单击表单上的事件

时间:2013-04-10 03:48:04

标签: vb.net click controls

当点击表单中的任何控件(例如datagirdview,panel,menustrip,button,textbox,label等)时,是否有一种简单的方法来激活表单....

碰巧我的项目可以显示许多不同的形式,当我在活动表单的背面时,我很难激活一个表单。我需要点击表单的边框来激活它。

2 个答案:

答案 0 :(得分:1)

你的问题根本不清楚,我不知道你想要做什么,但是为了用click事件执行某些事情,你必须为每个控件添加处理程序。

如果你宣称它不是唯一的:

Private Sub ControlsClick(sender As Object, e As EventArgs) _
Handles Panel1.Click, Button1.Click, TextBox2.Click ' etc.
    Me.Activate 'Or Whatever
End Sub

您必须为每个控件添加处理程序。如果你以恐怖的方式做同样的话:

Private Sub InitializeClickHandlers(sender As Control, Optional bChilds As Boolean = True)
    For Each elem As Control In sender.Controls
        AddHandler elem.Click, AddressOf ControlsClick(elem, New EventArgs)

        If bChilds AndAlso elem.Controls.Count > 0 Then
            Call InitializeClickHandlers(sender)
        End If
    Next
End Sub

然后,对于表单中的每个控件,您可以将其称为:Call InitializeClickHandlers(Me)
或者,对于面板内的每个控件:Call InitializeClickHandlers(Panel1)

答案 1 :(得分:1)

很可能是你的问题出现了,因为你的表格是MDI孩子..你必须点击菜单栏来激活表格..但如果你有一个无边框表格,点击控件不会激活表格..再次,这通常发生在MDI上,但不应该在常规winform上发生..除非你在后台有其他运行事件干扰了这个过程。