嘿和另一個奇怪的問題,對不起......一個按鈕來控制許多用戶的另一個按鈕控制
我有25個UserControl
s的他們每個人的Start_Button
- 這Start_Button
可以是Visible
與否取決於UserControl
是否處於活動狀態。在我的form1
我有一個Start_All
按鈕。
我想模擬點擊所有UserControl
的Start_Buttons
這些只能看到。
嘿和另一個奇怪的問題,對不起......一個按鈕來控制許多用戶的另一個按鈕控制
我有25個UserControl
s的他們每個人的Start_Button
- 這Start_Button
可以是Visible
與否取決於UserControl
是否處於活動狀態。在我的form1
我有一個Start_All
按鈕。
我想模擬點擊所有UserControl
的Start_Buttons
這些只能看到。
不是模擬點擊事件,而是顯示啓動功能的方法,並從Start_Button.Click
-事件中調用此方法。那麼你可以從任何你想要的地方使用這種方法。在這種方式下,您的代碼保持可讀性和可重用性。
您還應該在您的UserControl
中提供Active
屬性,您只需鏈接到您的開始按鈕的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
感謝您的迴應。我正在努力掌握這個解決方案:3 –
@AmatureCoder:你究竟知道些什麼? 'MyUserControlType'是你的'UserControl'類型(用正確的類型替換它)。以'From uc in controlPanel'開頭的片段是一個LINQ查詢。 –
基本上把你的StartButtons做的事情放入Start Sub .... – Mych
你有什麼嘗試過嗎? R' – equisde
Winforms或webforms?通常,不是模擬點擊事件,而是爲啓動功能公開一個方法,並從「Start_Button.Click」事件中調用此方法。然後你可以從你想要的地方調用這個方法,你的代碼保持可讀性和可重用性。 –
我已經嘗試製作所有用戶控件的列表。製作一個布爾變量是否可見。然後嘗試以某種方式使用if語句的for循環到'.performclick()',如果每個usercontrol的值是可見的......但我無法得到這個工作xD @equisde –