读书人

动态创建 LinkLabel 及事件处理程序,该

发布时间: 2012-02-03 22:02:47 作者: rapoo

动态创建 LinkLabel 及事件处理程序
各位技术达人,小弟刚触及C#,还望举手之间帮个忙。
现在要动态创建几个 LinkLabel 及事件处理程序(点击它将弹出一个显示其Name 对话框)。可是在赋给它一个事件的时候,也就是在“???”的那个地方,“敲”不出 LinkClick (事件),请问要实现上述目的,该如何编写这段程序?

private LinkLabel[] LL = new LinkLabel[10];

private void Form1_Load(object sender, EventArgs e)
{
int a = 0;
int x = 0, y = 0;
for (a = 0; a <= 5; a++)
{
LL[a] = new LinkLabel();
LL[a].Text = "这是第" + a.ToString() + "LinkLabel";
LL[a].Width = panel1.Width / 3;
LL[a].Left = x * LL[a].Width;
LL[a].Height = panel1.Height / 10;
LL[a].Top = y * LL[a].Height;
LL[a].Name = "LL" + a.ToString();
panel1.Controls.Add(LL[a]);
panel1.Controls[a]. ??? += new LinkLabelLinkClickedEventHandler(this.ButtonArray_OnClick);
y++;
}
}

private void ButtonArray_OnClick(object sender, LinkLabelLinkClickedEventArgs e)
{
LinkLabelLinkClickedEventArgs arg = (LinkLabelLinkClickedEventArgs)e;
LinkLabel l_1 = (LinkLabel)sender;
if (arg.Button == MouseButtons.Left)
{
MessageBox.Show(l_1.Name.ToString());
}
}


[解决办法]

C# code
((LinkLabel)panel1.Controls[a]). ???  += new LinkLabelLinkClickedEventHandler(this.ButtonArray_OnClick);
[解决办法]
3楼正解,你必须先进行类型转换
[解决办法]

private LinkLabel[] LL = new LinkLabel[10];

private void Form1_Load(object sender, EventArgs e)
{
int a = 0;
int x = 0, y = 0;
for (a = 0; a <= 5; a++)
{
LinkLabel laber = new LinkLabel();
laber .Text = "这是第" + a.ToString() + "LinkLabel";
///
////

laber.Onclick+=new LinkLabelLinkClickedEventHandler(this.ButtonArray_OnClick);
panel1.Controls.add(laber);
}
}

private void ButtonArray_OnClick(object sender, LinkLabelLinkClickedEventArgs e)
{
LinkLabelLinkClickedEventArgs arg = (LinkLabelLinkClickedEventArgs)e;
LinkLabel l_1 = (LinkLabel)sender;
if (arg.Button == MouseButtons.Left)
{
MessageBox.Show(l_1.Name.ToString());
}
}

[解决办法]
C# code
private LinkLabel[] LL = new LinkLabel[10];         private void Form1_Load(object sender, EventArgs e)         {             int a = 0;             int x = 0, y = 0;             for (a = 0; a  <= 5; a++)             {                 LL[a] = new LinkLabel();                 LL[a].Text = "这是第" + a.ToString() + "LinkLabel";                 LL[a].Width = panel1.Width / 3;                 LL[a].Left = x * LL[a].Width;                 LL[a].Height = panel1.Height / 10;                 LL[a].Top = y * LL[a].Height;                 LL[a].Name = "LL" + a.ToString();                 LL[a].Onclick += new LinkLabelLinkClickedEventHandler(this.ButtonArray_OnClick);                  panel1.Controls.Add(LL[a]);                 y++;             }         }         private void ButtonArray_OnClick(object sender, LinkLabelLinkClickedEventArgs e)         {             LinkLabelLinkClickedEventArgs arg = (LinkLabelLinkClickedEventArgs)e;             LinkLabel l_1 = (LinkLabel)sender;             if (arg.Button == MouseButtons.Left)             {                 MessageBox.Show(l_1.Name.ToString());             }                 } 

读书人网 >C#

热点推荐