winform 动态生成自定义控件添加单击事件无效

privatevoidForm1_Load(objectsender,EventArgse){newButton[,]bt=newnewButton[6,6];for(i... 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; }
}
}
}
展开
 我来答
leiyangbdwk
2013-05-29 · TA获得超过3295个赞
知道大有可为答主
回答量:4975
采纳率:12%
帮助的人:4385万
展开全部
我试过是可以的,
在你的自定义newButton加这么一句也许更好
private void newButton_Load(object sender, EventArgs e)
{
this.BackColor = Color.Blue;
}
另外,为什么你定义newButton 要继承自UserControl而不是button?
追问
感谢啊,终于解决了问题
之前自定义控件时只写过书上的几个例子,没注意newButton的继承问题。
不过二维数组倒是没问题,我是用它来动态生成button。
百度网友ce9f999
2013-05-29 · TA获得超过406个赞
知道小有建树答主
回答量:540
采纳率:100%
帮助的人:546万
展开全部
有一个错误,动态添加控件,需要指定控件的Name属性,不能重复。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
youbl
2013-05-29 · TA获得超过2510个赞
知道大有可为答主
回答量:1844
采纳率:62%
帮助的人:1666万
展开全部
你的newButton的定义,可以发出来看看
追问
定义已发
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式