【发布时间】:2015-04-25 19:43:38
【问题描述】:
我有多个 6 个按钮,当您单击每个按钮时,它们会更改其属性,并停用同一标签的其他属性中的其他属性。
我目前的代码不使用标签,并且对于每次按钮点击都执行此操作非常冗长:
private void buttonBritishGas_Click(object sender, EventArgs e)
{
buttonBritishGas.FlatStyle = FlatStyle.Flat;
buttonBritishGas.FlatAppearance.BorderSize = 3;
buttonBritishGas.FlatAppearance.BorderColor = Color.Blue;
buttonEDF.FlatStyle = FlatStyle.Standard;
buttonEDF.FlatAppearance.BorderSize = 1;
buttonEDF.FlatAppearance.BorderColor = Color.White;
buttonEON.FlatStyle = FlatStyle.Standard;
buttonEON.FlatAppearance.BorderSize = 1;
buttonEON.FlatAppearance.BorderColor = Color.White;
buttonNPower.FlatStyle = FlatStyle.Standard;
buttonNPower.FlatAppearance.BorderSize = 1;
buttonNPower.FlatAppearance.BorderColor = Color.White;
buttonScottishPower.FlatStyle = FlatStyle.Standard;
buttonScottishPower.FlatAppearance.BorderSize = 1;
buttonScottishPower.FlatAppearance.BorderColor = Color.White;
buttonSSE.FlatStyle = FlatStyle.Standard;
buttonSSE.FlatAppearance.BorderSize = 1;
buttonSSE.FlatAppearance.BorderColor = Color.White;
我使用的标签是“供应商”,这是我目前尝试的代码:
private void buttonBritishGas_Click(object sender, EventArgs e)
{
buttonBritishGas.Tag = "SelectedSupplier";
foreach (Control c in Controls)
{
if (c.Tag.Equals("SelectedSupplier"))
{
FlatStyle = FlatStyle.Flat;
FlatAppearance etc...;
}
}
foreach (Control c in Controls)
{
if (c.Tag.Equals("Supplier"))
{
FlatStyle = FlatStyle.Standard;
FlatAppearance etc...;
}
}
感谢任何帮助!
已编辑:
private void ChangeStyleByTag(Control parent, string tag, object sender, EventArgs e)
{
foreach (Control c in parent.Controls)
{
if (c.Tag != null && c.Tag.Equals(tag))
{
Button b = (Button)sender;
b.FlatStyle = FlatStyle.Flat;
b.FlatAppearance.BorderSize = 3;
b.FlatAppearance.BorderColor = Color.Blue;
}
else
ChangeStyleByTag(c, tag);
}
}
private void buttonBritishGas_Click(object sender, EventArgs e)
{
buttonBritishGas.Tag = "SelectedSupplier";
ChangeStyleByTag(this."SelectedSupplier");
ChangeStyleByTag(this."Supplier");
}
【问题讨论】:
标签: c# visual-studio-2010 visual-studio visual-studio-2012 tags