获取随机按钮

时间:2014-10-18 15:38:00

标签: c#

我有按钮1-2-3 ... 12,我想随机获得4个(不重复),然后给它们一个颜色,例如红色。我怎么能这样做?

    public Form1()
    {
        InitializeComponent();

        Button[] LeftArr = new Button[12] { button1, button2, button3, button4, button5, button6, button7, button8, button9, button10, button11, button12 };

        int i = 0;
        for (i = 0; i <= LeftArr.Length; i++)
        {
            Random rnd = new Random();
            Button ShipHere = rnd.Next( button1, button12 );

           // this is where i'm stuck
        }

1 个答案:

答案 0 :(得分:1)

首先,您要确保在循环中的每次迭代中都不要继续创建新的Random对象。否则你最终会得到重复。

Random rnd = new Random();

List<Button> randomButtons = new List<Button>(4);

for (int i = 0;i < 4;++i)
{
    Button chosenButton;

    // Keep looping until we get a button we haven't already picked
    do
    {
        chosenButton = LeftArr[rnd.Next(0, LeftArr.Length)];
    } while (randomButtons.Contains(chosenButton));

    randomButtons.Add(chosenButton);
}

foreach (Button button in randomButtons)
    button.BackColor = Color.Red;