我正在使用代码创建一个2D按钮数组,我想添加一个button_click()方法。 除了2个通常的参数(对象发送者,EventArgs e)之外,我想要另外输入两个变量,以确定单击了哪个按钮,并做了其他事情。
我目前正在做这个
arr[i,j].Click+= new EventHandler(button_click);
public void button_click(object sender, EventArgs e)
是否有另一种添加事件的方式可以让我做我想做的事情?
并且单独注意。有没有使用按钮创建具有特定颜色的立方体的简单方法?
答案 0 :(得分:1)
答案 1 :(得分:0)
创建一个继承自button
类的类。并为其添加2 properties
。然后访问表单中的这些属性。以下示例是解决问题的一种方法。
public class ButtonCtrl : Button
{
public ButtonCtrl(int _arg1, int _arg2)
{
Arg1 = _arg1;
Arg2 = _arg2;
}
public int Arg1 { get; set; }
public int Arg2 { get; set; }
}
//create buttons in form c'tor
public Form1()
{
InitializeComponent();
ButtonCtrl button1 = new ButtonCtrl(1,2);
button1.Text = "dynamic 1";
button1.Click += new EventHandler(button_click);
button1.Top = 10;
this.Controls.Add(button1);
ButtonCtrl button2 = new ButtonCtrl(3, 4);
button2.Text = "dynamic 2";
button2.Click += new EventHandler(button_click);
button2.Top = 30;
this.Controls.Add(button2);
}
事件处理程序
public void button_click(object sender,EventArgs e)
{
if(sender is ButtonCtrl)
{
ButtonCtrl btnCtrl= sender as ButtonCtrl;
label1.Text = btnCtrl.Arg1.ToString() + " " + btnCtrl.Arg2.ToString();
}
}