【发布时间】:2016-11-11 17:07:15
【问题描述】:
我使用对象列表作为我的应用程序的输入,并且列表中的对象数量发生了变化。对于列表中的每个对象,我会动态创建一个面板并将它们添加到其他面板的控件中
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 个面板更改为红色,反之亦然。
【问题讨论】: