1

我正在使用Visual Basic(Visual Studio 2010)創建動態創建的控件。基本上我正在做的是創建一個標籤,一個文本框,一個標籤(它將作爲一個秒錶)和一個按鈕(來控制秒錶)。Visual Basic中的接線控制,控制控件

每套控制將安排(並命名)這樣連續:

 
[LABEL] [TEXTBOX]   [TIMER]  [BUTTON] 
Labelx ParticipantNamex RingTimerx ControlButtonx 

因此,對於給定的行,我會是這樣的:

 
[LABEL] [TEXTBOX]   [TIMER]  [BUTTON] 
Label1 ParticipantName1 RingTimer1 ControlButton1 

我我已經獲得了一些關於動態創建元素的內容,並且在面板中創建了它們,並在我創建的表單上添加了一個特定號碼。我想要做的就是連接一個動態創建的按鈕事件,以控制通過同一事件創建的秒錶計時器。

所以簡而言之,我要求如何連線一個事件來控制一個特別動態的按鈕?

回答

1

使用匿名子(VB2010只)編寫事件處理程序內嵌

Timer myTimer = New Timer 
Button button = New Button 
AddHandler button.Click, 
    Sub(s As Object, e As EventArgs) 
     ' can manipulate the Timer here 
     ' because it is captured in a closure  
     myTimer.Stop  
    End Sub 

here改編。

PS閱讀more about closures來自我們自己的Jared。

+0

謝謝馬克。我有一個問題,用這個代碼,我必須爲每個對象動態創建一個名稱嗎? – 2012-01-31 23:20:04

+0

不,我不這麼認爲。默認名稱是一個空字符串。據我所知,如果您打算稍後使用該名稱,則只需命名該控件即可[區分](http://msdn.microsoft.com/zh-cn/library/system.windows.forms。 control.controlcollection.find.aspx)不同的控件的名稱。 (恕我直言,通常有更好的辦法)。 [查看文檔更多](http://msdn.microsoft.com/en-us/library/system.windows.forms.control.name.aspx) – MarkJ 2012-02-01 06:24:59

+0

我發現這個小問題...說我動態創建兩套按鈕和標籤,使用這種方法只更新標籤,兩個按鈕控制同一個定時器。 (因此,爲什麼我還沒有得到upvote。)有什麼建議? – 2012-02-01 18:37:12