首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

动态生成LinkLabel,该怎么解决

2012-05-31 
动态生成LinkLabel我想根据保存在HashTable里的数值的数量自动生成相应数量的LinkLabel,key的值为新生成控

动态生成LinkLabel
我想根据保存在HashTable里的数值的数量自动生成相应数量的LinkLabel,key的值为新生成控件的Text,Value的值则传到LinkClicked事件
请问如何将 value=ht[listKeys[i].ToString()] 赋值在LinkLabel的对象linklbl里,才能在新生成的控件的LinkClicked事件中使用,或者有其他方法的请告知……

C# code
LinkLabel linklbl;ArrayList listKeys = new ArrayList();HashTable ht; //……假设有一堆foreach (Object key in ht.Keys){    listKeys.Add((string)key);}for (int i = 0; i < ht.Count; i++){    linklbl = new LinkLabel();    linklbl.Name = "lkl" + i.ToString();    linklbl.Text = listKeys[i].ToString();    linklbl.LinkClicked += new LinkLabelLinkClickedEventHandler(LinkClicked);        this.Controls.Add(linklbl);}private void LinkClicked(object sender, LinkLabelLinkClickedEventArgs e){    WinExec(?, 1);}


[解决办法]
自定义用户控件,里面放置一个linklabel,然后在自定义的控件中添加你的value属性字段。这样每动态生成一个自定义的linklabel,就赋值他的value属性,这样就保证每个控件的value值都不同了。而且你可以用同一个事件注册你循环产生的控件,只是在click事件中,通过value值来给出不同的响应
[解决办法]
private void LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
LinkLabel linklbl=(LinkLabel)sender;
linklbl.text=..
后面的自己写吧

WinExec(?, 1);
}

热点排行