我正在设计一个UserControl
,其中包含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
上绘制项目?另外,如何在代码中将单击的事件添加到它们中?
答案 0 :(得分:0)
您可以在FlowLayoutPanel
上添加ItemsControl
控件并使用以下代码将ItemControl
绘制到其中:
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
{{1}} 1}}位置,你自己。