我有一个程序逐行读取文件,并将该字符串放在tableLayoutPanel中,但是如何为tableLayoutPanel中的每个标签创建一个eventHandler?C#自动生成EventHandler
这里是我使用的代码:
Label label = new Label();
label.Name = "MyNewLabel";
label.ForeColor = Color.Red;
label.Text = line;
tableLayoutPanel1.RowCount++;
tableLayoutPanel1.RowStyles.Add(new RowStyle());
tableLayoutPanel1.Controls.Add(label, 0, tableLayoutPanel1.RowCount + 1);
每个标签,需要打开一个网页,并链接必须是它自己的文字。
我已经尝试过这样的:
与
private void HandleClick(object sender, EventArgs e)
{
messageBox.Show("Hello World!");
}
这是行不通的。
新的问题:
主要问题是由杰伊·沃克解决了,但现在我有另一个问题。并非所有的标签都可以使用eventHandler。下面是主要代码:
string line;
System.IO.StreamReader file = new System.IO.StreamReader("research.dat");
while ((line = file.ReadLine()) != null)
{
Label label = new Label();
label.Name = "MyNewLabel";
label.ForeColor = Color.Red;
label.Text = line;
label.Click += HandleClick;
tableLayoutPanel1.RowCount++;
tableLayoutPanel1.RowStyles.Add(new RowStyle());
tableLayoutPanel1.Controls.Add(label, 0, tableLayoutPanel1.RowCount + 1);
}
结合:
private void HandleClick(object sender, EventArgs e)
{
((Control)sender).BackColor = Color.White;
}
有些标签背景变为白色,而相同那些没有。
您要添加的标签'tableLayoutPanel1',但是,你是循环'PANEL1 '控件(并且分配给'label'而不是'x',但是在下面的答案中被评论过)......是吗? – Jcl 2013-03-03 16:49:28
你能否详细说明一下“一些标签背景变成了白色,而**相同的**则没有”。 ** **是什么? – 2013-03-04 00:00:24