繁体   English   中英

winforms-简单表单,如何迭代其中的所有按钮(Visual Sudito 2010 + C#)

[英]winforms - simple form, how to iterate all the buttons in it (Visual Sudito 2010 + C#)

现在,我已经创建了一个Windows Forms Project其中包含一个窗体和添加的六个buttons 我现在想做的是找出如何遍历所有按钮的目标,目的是将每个按钮的背景色设置为偶数而不是其他颜色。 button4-red button1 - whitebutton2-redbutton3-whitebutton4-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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM