2016-03-21 165 views
0

所以我們經常遇到這個問題,我沒有看到這個通用的答案。如何使用動態創建的控件處理事件?

主要問題是: 我以編程方式創建控件(如按鈕),我想處理單擊事件,我該怎麼做?

+1

回答[這裏](http://stackoverflow.com/q/11312239),[這裏](http://stackoverflow.com/q/16245189)和[這裏](http://stackoverflow.com/ q/7375061)等等 – Plutonix

回答

0

以下是放置在FlowLayOutPanel上的一個按鈕,因此如果您要添加許多按鈕,流動面板將協助您完成此操作。

Dim b As New Button With 
    { 
     .Name = "Button1", 
     .Text = "Press me", 
     .Size = New Size(100, 100), 
     .Location = New Point(25, 30), 
     .Parent = FlowLayoutPanel1, 
     .Visible = True 
    } 

AddHandler b.Click, Sub(s As Object, e As EventArgs) 
         Dim bnt = CType(s, Button) 
         If bmt.Name = "Button1" Then 
          MessageBox.Show(bnt.Text) 
         End If 
        End Sub 

FlowLayoutPanel1.Controls.Add(b) 

我做了什麼(和願意分享)是建立一個能創造一對多按鈕一次一類,但關鍵是集成按鈕被從中歸結爲檢查名稱點擊事件點擊的或者可能在動態創建的按鈕或類似控件的標籤中有所值。

請注意,如何添加事件有一個缺點,如果您需要取消訂閱該事件(如圖所示),那麼這是值得的,因此如果需要訂閱和取消訂閱活動。

相關問題