2014-10-19 78 views
0

我在設計一個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的項目,一旦我把它們添加到列表中?另外我怎樣才能在代碼中添加點擊事件給他們?

回答

0

你可以把一個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位置。