2016-03-21 78 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) 

我做了什么(和愿意分享)是建立一个能创造一对多按钮一次一类,但关键是集成按钮被从中归结为检查名称点击事件点击的或者可能在动态创建的按钮或类似控件的标签中有所值。

请注意,如何添加事件有一个缺点,如果您需要取消订阅该事件(如图所示),那么这是值得的,因此如果需要订阅和取消订阅活动。

相关问题