2017-10-13 56 views
0

上創建一個動態按鈕,我創建在運行時的形式,文本框和按鈕時遇到問題,嘗試添加的事件處理程序的按鈕(下面的代碼)單擊事件。我認爲,內聯函數可能是要走的路,但我還沒有使用這些很大,看着用C#編寫,但未能將其轉換爲vb.net的例子,這可能是不走,雖然路。一個dymanic形式

至於我的理由採取這種方法,它只是學習如何做到這一點,我可以創建一個Windows窗體和這樣做的,但它總是好的嘗試新的東西。願意接受批評我的代碼,但一如既往,請做出這種建設性的。

 Dim CommandButton As New Button 
     With CommandButton 
      .Text = "Submit" 
      .Name = "btnComments" 
      .Location = New Point(232, 110) 
      .Font = New Font("Tahoma", 12) 
      .Size = New System.Drawing.Size(130, 32) 
     End With 

     Dim TextBox As New TextBox 
     With TextBox 
      .Name = "CommentsText" 
      .Location = New Point(20, 20) 
      .Size = New System.Drawing.Size(342, 80) 
      .Multiline = True 
      .BackColor = Color.Snow 
     End With 

     Dim CommentsForm As New Windows.Forms.Form 
     With CommentsForm 
      .StartPosition = FormStartPosition.CenterParent 
      .Height = 195 
      .Width = 400 
      .Text = "Enter despatch comments for " & Me.ReferenceValue 
      .Controls.Add(TextBox) 
      .Controls.Add(CommandButton) 
      .MaximizeBox = False 
      .MinimizeBox = False 
      .FormBorderStyle = FormBorderStyle.FixedDialog 
      .ShowDialog() 
     End With 
+0

試試這個 https://stackoverflow.com/questions/7375061/dynamic-button-click-event-處理程序 –

+0

這些似乎是從表單對象已經存在的地方出現,除非我錯了,如果是這樣,那麼它就沒用了。 –

回答

0

要動態地向控件添加處理程序,請使用AddHandler yourControlName.eventToHandle, AddressOf handlingMethod

+0

你又錯過了這一點。表單不存在,因此沒有可以使用AddressOf引用的事件。控件和表單都是動態的。 –

0

可以使用的AddHandler添加一個處理任何事件。

例如,這可能是:

的AddHandler theButton.Click,AddressOf Me.theButton_Click