2
我試圖使用下面的代碼動態添加面板及其事件處理程序。動態添加控件和事件處理程序C#
但它似乎並不奏效(點擊時觸發事件),雖然它與許多可用答案類似。
請儘可能幫忙。
int items = 0;
private void Form1_Load(object sender, EventArgs e)
{
ArrayList al = new ArrayList();
foreach (KnownColor knowColor in Enum.GetValues(typeof(KnownColor)))
{
Color color = Color.FromKnownColor(knowColor);
al.Add(color.Name);
}
foreach (string i in al)
{
addListItem(i);
}
}
public void addListItem(string item)
{
Panel pnlItem = new Panel();
pnlItem.Location = new Point(0, items * 25);
pnlItem.Name = "pnl" + item;
pnlItem.Size = new Size(250, 25);
pnlList.Controls.Add(pnlItem);
Label lbl = new Label();
lbl.Text = item;
pnlItem.Controls.Add(lbl);
pnlItem.MouseClick += new MouseEventHandler(pnlItem_MouseClick);
items++;
}
void pnlItem_MouseClick(object sender, MouseEventArgs e)
{
MessageBox.Show("panel was clicked");
}
不,沒關係。它們可以包含在其他控件內。 – ispiro
所以我如何得到這個工作,因爲一切都很好,但它不會觸發事件。 – thewikus
你是否點擊面板本身或面板內的標籤? – Icemanind