[英]winforms - simple form, how to iterate all the buttons in it (Visual Sudito 2010 + C#)
现在,我已经创建了一个Windows Forms Project
其中包含一个窗体和添加的六个buttons
。 我现在想做的是找出如何遍历所有按钮的目标,目的是将每个按钮的背景色设置为偶数而不是其他颜色。 像button4-red
button1 - white
, button2-red
, button3-white
, button4-red
等等。 知道我不知道如何迭代按钮或更改background color
属性,但是问题是关于迭代的,所以如果有人知道如何更改按钮的background color
,这将为我节省很多时间,我将不胜感激。时间,也许是这里的新问题。
您可以使用以下代码:
foreach(Control c in this.Controls) // this is the form object on which Controls is the ControlCollection
{
if(c is Button)
{
KnownColor[] names = (KnownColor[]) Enum.GetValues(typeof(KnownColor));
KnownColor color= names[randomGen.Next(names.Length)];
Color color = Color.FromKnownColor(randomColorName);
c.BackColor = color;
}
}
它是按钮的数组还是列表? 然后,您可以执行以下操作:
buttons.Select((btn,index)=>{
if(index%2==0)btn.BackgroundColor=Color.Red
else
btn.BackgroundColor=Color.White;
});
foreach (Control control in Controls)
{
Button button = control as Button;
if (button == null) continue;
switch (button.Name)
{
case "button1":
button.BackColor = Color.Red;
break;
case "button2":
button.BackColor = Color.Yellow;
break;
case "button3":
button.BackColor = Color.Green;
break;
default:
button.BackColor = Color.Black;
break;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.