有一个form,里面有一个panel,我一单击button,panel里生成了两个label,代码如下:private void button1_Click(object sender, EventArgs e)
{
int n = 2;
Label[] la = new Label[n];
for (int i = 0; i < n; i++)
{
la[i] = new Label();
la[i].Text = Convert.ToString(i);
flowLayoutPanel1.Controls.Add(la[i]);
}
}然后我单击label1(左边那个) 弹出对话框,“你单击了label1”,单击右边那个就是“你单击了label2”。我知道怎么弹出对话框,我想弄明白的是,这两个label是程序后来生成的,如何对它们编辑这样的事件。
{
int n = 2;
Label[] la = new Label[n];
for (int i = 0; i < n; i++)
{
la[i] = new Label();
la[i].Text = Convert.ToString(i);
flowLayoutPanel1.Controls.Add(la[i]);
}
}然后我单击label1(左边那个) 弹出对话框,“你单击了label1”,单击右边那个就是“你单击了label2”。我知道怎么弹出对话框,我想弄明白的是,这两个label是程序后来生成的,如何对它们编辑这样的事件。
{
int n = 2;
Label[] la = new Label[n];
for (int i = 0; i < n; i++)
{
la[i] = new Label();
la[i].Text = Convert.ToString(i);
flowLayoutPanel1.Controls.Add(la[i]);
la[i].Click+=(obj,eve)=>MessageBox.Show("你单击了label"+i);//C#3.0语法。
//也可以根据控件名来处理:MessageBox.Show(obj.ToString());//稍微处理一下就行了
}
}
{
int n = 2;
Label[] la = new Label[n];
for (int i = 0; i < n; i++)
{
la[i] = new Label();
la[i].Text = Convert.ToString(i);
la[i].Click+=new System.EventHandler(Label_Click);//正统语法
flowLayoutPanel1.Controls.Add(la[i]);
}
}private void Label_Click(object sender, EventArgs e)
{
...
}
private void button1_Click(object sender, EventArgs e)
{
int n = 2;
Label[] la = new Label[n];
for (int i = 0; i < n; i++)
{
la[i] = new Label();
la[i].Name="Label"+i;
la[i].Text = Convert.ToString(i);
(Label)la[i].Click +=new EventHandler(Label_Click);
flowLayoutPanel1.Controls.Add(la[i]);
}
}
private void Label_Click(object sender,EventArgs e)
{
MessageBox.show("你单击了"+(Label)sender.Name);
}
private void button1_Click(object sender, EventArgs e)
{
int n = 2;
Label[] la = new Label[n];
for (int i = 0; i < n; i++)
{
la[i] = new Label();
la[i].Name="Label"+i;
la[i].Text = Convert.ToString(i);
(Label)la[i].Click +=new EventHandler(Label_Click);
flowLayoutPanel1.Controls.Add(la[i]);
}
}
private void Label_Click(object sender,EventArgs e)
{
MessageBox.show("你单击了"+(Label)sender.Name);
}