public Data[] btsptmp = new Data[20]
//下面是代码
Button button = new Button()//新建一个按钮
button.Height = 85
button.Width = 85
button.Text = "你猜"//以上是参数
button.MouseClick += new MouseEventHandler(button_MouseClick)//绑定点击事件
btsptmp[i] = new Data //这里是我新建了一个静态构造函数 存储每个按钮的数据方便后期调用
{
lstime = i,
button = button//把新建的按钮存进去
}
flowLayoutPanel1.Controls.Add(button)//在窗口添加按钮
//下面是构造函数类
[Serializable]
public class Data
{
public int lstime
public Button button
}
//下面是点击事件
private void button_MouseClick(object sender, MouseEventArgs e){写你需要的事件}
动态创建和拖控件代码是一样的,
只是拖控件的话,系统把注册事件的代码自动加上了。
你可以在Form1上拖一个按钮,然后双击(产生一个click事件),
再看Form1.Designer.cs文件中的代码,如下:
//// button1
//
this.button1 = new System.Windows.Forms.Button()
this.button1.Location = new System.Drawing.Point(131, 73)
this.button1.Name = "button1"
this.button1.Size = new System.Drawing.Size(75, 23)
this.button1.TabIndex = 1
this.button1.Text = "button1"
this.button1.UseVisualStyleBackColor = true
//注册事件
this.button1.Click += new System.EventHandler(this.button1_Click)
在for循环中添加button,注意各button的点击事件方法名。
Label lbl = new Label()lbl.Click += new EventHandler(lbl_click) //用代码动态连接事件
.....
再实现lbl_click的定义:
private void lbl_click(object sender,EventArgs e){
Label lbl = (Label)(sender)//这么一转换就知道是哪个label点击了
if (lbl.Name=="lbl001")
//是001 label
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)