以编程方式将随机数字放入c#中表单的所有文本框中

时间:2012-07-05 22:19:54

标签: c# winforms visual-studio-2010 visual-studio textbox

我的表单看起来像这样:

enter image description here

如你所见,有很多texbox。我已经为所有文本框创建了一个循环来检查它们是否为空,为空或者它们是否只包含数字。

现在我想做的是生成随机数并将它们放入所有空文本框中(就像用户将数字键入文本框一样)。我怎样才能达到这个结果?

5 个答案:

答案 0 :(得分:4)

Random将帮助您生成随机数:

var random = new Random();
var emptyTextBoxes = Controls.OfType<TextBox>()
                             .Where(txt => txt.Text.Length == 0);
foreach (var txt in emptyTextBoxes)
    txt.Text = random.Next(1, 1000).ToString();

答案 1 :(得分:1)

听起来你已经有了一个可以迭代所有文本框的循环。对于该循环的主体,添加类似

的内容
Random rnd = new Random();

// Do you loop here

    if (string.IsNullOrEmpty(textBox.Text))
        textBox.Text = rnd.Next(10, 99).ToString(); // If you want numbers from 10 to 99

// End of your loop

如果由于某种原因总是希望在文本框中包含SAME值,可以使用Random(int seed)构造函数将种子指定为Random。

答案 2 :(得分:1)

  1. 生成一个随机数。使用Math.Random和另一个数学运算来实现此目的。取决于你想要的是什么类型的数字(整数,正数,最多100,无论如何)
  2. 在Form.Controls测试中循环,对于每个控件,如果是Textbox 。并且,对于这些情况,转换它们并设置值((文本框)控件).Text = randomNumber

        int randomNumber;
        foreach (Control control in this.Controls)
        {
            randomNumber = //your randomMagic
    
            if (control is TextBox)
            {
                ((TextBox)control).Text = randomNumber;
            }
        }
    
  3. 希望这有帮助

答案 3 :(得分:1)

       Random r = new Random();
       foreach (var ctrl in Controls)
       {
           var txtBoxCtrl = ctrl as TextBox;
           if (txtBoxCtrl != null)
           {
               if (string.IsNullOrEmpty(txtBoxCtrl.Text))
                   txtBoxCtrl.Text = r.Next().ToString();
           }
       }

答案 4 :(得分:0)

private void Form1_Load(object sender, EventArgs e)
{
    Random random = new Random();
    foreach (Control c in this.Controls)
    {
        if(c.GetType().Name == "TextBox")
        {
            c.Text = random.Next().ToString();
        }
    }
}