一个按钮用于控制许多用户控件上的另一个按钮

时间:2014-03-07 08:28:48

标签: vb.net

嘿嘿抱歉另一个奇怪的问题......

我有25 UserControlStart_Button,每个Start_Button Visible可以是UserControl,取决于form1是否为Start_All活性。在我的UserControl我有一个Start_Buttons按钮。

我想模拟所有仅{{1}}的{​​{1}}的点击。

1 个答案:

答案 0 :(得分:3)

不是模拟点击事件,而是公开启动功能的方法,并从Start_Button.Click - 事件中调用此方法。然后,您可以从任何地方使用此方法。通过这种方式,您的代码仍然可读并可重复使用。

您还应该在Active中提供UserControl属性,您只需链接到开始按钮的Visible - 属性即可。

假设用户控件位于容器控件中,如Panel

Public Sub StartAll()
    Dim allActiveUserControls = 
        From uc In controlPanel.Controls.OfType(Of MyUserControlType)()
        Where uc.Active
    For Each uc In allActiveUserControls 
        uc.Start()
    Next
End Sub

以下是Active属性的示例:

Public Property Active As Boolean
    Get
        Return StartButton.Visible
    End Get
    Set(value As Boolean)
        StartButton.Visible = value
    End Set
End Property

以下是Start方法和事件处理程序:

Public Sub Start()
    ' Do Something ... '
End Sub

Private Sub StartButton_Click(sender As System.Object, e As System.EventArgs) Handles StartButton.Click
    Start()
End Sub

Private Sub Start_All_Click(sender As System.Object, e As System.EventArgs) Handles Start_All.Click
    StartAll()
End Sub