我使用對象列表作爲我的應用程序的輸入,並且列表中對象的數量發生更改。對於列表中的每個對象我動態創建小組,並將它們添加到其他面板選擇/取消選擇,更改動態創建的多個面板的顏色
private void addPanel(string name, int positionFromLeft, Panel mainPanel)
{
Panel panel = new System.Windows.Forms.Panel();
panel.Name = name;
panel.Location = new System.Drawing.Point(50 + positionFromLeft, 160);
panel.BackColor = System.Drawing.Color.SteelBlue;
panel.Size = new System.Drawing.Size(120, 40);
panel.Click += new EventHandler(this.pClick);
mainPanel.Controls.Add(panel);
}
的控制,以每屏我添加了一個單擊事件處理程序而改變面板的顏色:
private void pClick(object sender, EventArgs e)
{
Panel panel= (sender as Panel);
panel.BackColor = Color.Green;
}
第二次點擊時,如何將每個面板的顏色更改爲不同的顏色(紅色等)?再次點擊時將其改回(綠色等)。基本上,每次點擊都會將面板的顏色從綠色更改爲紅色,反之亦然。它必須與每個面板配合使用,以便在運行時可以將10個面板的顏色更改爲綠色,將10個面板更改爲紅色,反之亦然。
不是所有的人,只有被點擊的人。前後改變顏色。基本上我需要捕獲動態創建的每個面板的當前點擊狀態。 – 01egi4
然後新的解決方案是正確的。您可以在當前的'BackColor'和想要設置的新'BackColor'之間切換。 – jorgonor
此解決方案不起作用,因爲初始顏色不是綠色,而是SteelBlue。 – 01egi4