winform 动态生成自定义控件添加单击事件无效
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform 动态生成自定义控件添加单击事件无效相关的知识,希望对你有一定的参考价值。
private void Form1_Load(object sender, EventArgs e)
newButton[,] bt = new newButton[6, 6];
for (int i = 0; i < 6; i++)
for (int j = 0; j < 6; j++)
bt[i, j] = new newButton();
bt[i, j].Width = 50;
bt[i, j].Height = 50;
bt[i, j].Top = i * 50;
bt[i, j].Left = j * 50;
this.Controls.Add(bt[i, j]);
bt[i, j].Click += new EventHandler(Button_Click);
private void Button_Click(object sender,EventArgs e)
MessageBox.Show("aaaa");
说明:自定义了一个button控件,仅仅只是在button控件的基础上添加了一个可读可写的属性,新生成的控件取名为newButton。但是下面这个代码无效,
bt[i, j].Click += new EventHandler(Button_Click);
如果将newButton换成button的话这个代码就是有效的,
蛋疼了半天,求高手讲解下原因,或指定一下方向。
自定义控件,仅仅加了个isMine
namespace MyButton
public partial class newButton : UserControl
public newButton()
InitializeComponent();
private void UserControl1_Load(object sender, EventArgs e)
private int isMine=0;
public int IsMine
get return isMine;
set isMine = value;
在你的自定义newButton加这么一句也许更好
private void newButton_Load(object sender, EventArgs e)
this.BackColor = Color.Blue;
另外,为什么你定义newButton 要继承自UserControl而不是button?追问
感谢啊,终于解决了问题
之前自定义控件时只写过书上的几个例子,没注意newButton的继承问题。
不过二维数组倒是没问题,我是用它来动态生成button。
定义已发
以上是关于winform 动态生成自定义控件添加单击事件无效的主要内容,如果未能解决你的问题,请参考以下文章
WPF C# 如何在动态添加的grid控件中添加某个网格中的image控件的单击事件?
winform动态添加控件显示排列 选中一个分类后,在panel控件中动态添加图片和文字,跟桌面上的图标一样。