c#在用户控件上绘制linklabel
问题描述:
我在设计一个UserControl
,它将包含linklabel
的列表。事情是这样的:c#在用户控件上绘制linklabel
public class ItemControl : LinkLabel {}
public class ItemsControl : UserControl
{
private readonly List<ItemControl> items;
public TaskBox()
{
this.items = new List<ItemControl>();
}
public List<ItemControl> Items
{
get { return this.items; }
}
}
但我怎么能借鉴UserControl
的项目,一旦我把它们添加到列表中?另外我怎样才能在代码中添加点击事件给他们?
答
你可以把一个FlowLayoutPanel
控制你的ItemsControl
和使用下面的代码来绘制ItemControl
s到它:
foreach (var item in this.Items)
{
flowLayoutPanel1.Controls.Add(item);
item.LinkClicked += item_LinkClicked;
}
void item_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
MessageBox.Show(((item)sender).Name);
}
使用FlowLayaoutPanel
是任意的,但如果你不使用FlowLayoutPanel
,你可以把每个LinkItem
直接在您的UserControl
上,并且必须自己管理每个LinkItem
位置。