当单击表单中的任何控件(如 datagirdview、面板、菜单条、按钮、文本框、标签等)时,是否有一种简单的方法来激活表单......
碰巧我的项目可以显示许多不同的表单,当它位于活动表单的背面时,我很难激活一个表单。我需要单击表单的边框来激活它。
最有可能出现您的问题是因为您的表单是 MDI 子表单。您必须单击菜单栏才能激活表单。但是如果您有无边框表单,则单击控件不会激活表单。再次,这通常会发生在 MDI 上,但它不应该发生在常规的 winform 上。除非您在后台有其他正在运行的事件会干扰进程。
您的问题根本不清楚,我不知道您要归档什么,但是要通过单击事件执行某些操作,您必须为每个控件添加处理程序。
如果您声明它不仅仅是:
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)