0

当单击表单中的任何控件(如 datagirdview、面板、菜单条、按钮、文本框、标签等)时,是否有一种简单的方法来激活表单......

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

4

2 回答 2

1

最有可能出现您的问题是因为您的表单是 MDI 子表单。您必须单击菜单栏才能激活表单。但是如果您有无边框表单,则单击控件不会激活表单。再次,这通常会发生在 MDI 上,但它不应该发生在常规的 winform 上。除非您在后台有其他正在运行的事件会干扰进程。

于 2013-08-28T03:44:46.703 回答
1

您的问题根本不清楚,我不知道您要归档什么,但是要通过单击事件执行某些操作,您必须为每个控件添加处理程序。

如果您声明它不仅仅是:

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)

于 2013-04-10T07:23:03.377 回答