就是我单击的时候写的是label1.BackColor = Color.Red变成红色 现在我要单击另一个lable2 要他的颜色变成红色 lable1的颜色恢复原来的颜色要怎么写?以此类推 我还4,5个lable要实现这种功能怎么写啊
------解决思路----------------------
假设你有5个label,分别叫label1~5
将它们的Click都关联给同一个事件处理函数:
void label_Click(object sender, EventArgs e)
{
for (int i = 1; i <= 5; i++)
{
if (Controls["label" + .ToString()] != sender)
{
Controls["label" + .ToString()] as Label).Backolor = Color.Black;
}
else
{
Controls["label" + .ToString()] as Label).Backolor = Color.Red;
}
}
}
------解决思路----------------------
其实你这个问题的关键在于如何保存原来的颜色并恢复而已。
Dictionary<Label, Color> labelDict = new Dictionary<Label, Color>();
// 为所有你想要这种行为的Label绑定下面的Click事件
private void label1_Click(object sender, EventArgs e)
{
foreach (KeyValuePair<Label, Color> pair in labelDict) {
pair.Key.BackColor = pair.Value;
}
labelDict.Clear();
Label label = sender as Label;
labelDict.Add(label, label.BackColor);
label.BackColor = Color.Red;
}