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

C# 以编程方式将随机数字放入c中表单的所有文本框中#,c#,winforms,visual-studio-2010,visual-studio,textbox,C#,Winforms,Visual Studio 2010,Visual Studio,Textbox,我的表格是这样的: 正如你所看到的,有一堆纸箱。我为所有文本框创建了一些循环,以检查它们是否为空、null或是否仅包含数字 现在我想做的是生成随机数,并将它们放入所有空的文本框中(就像用户在文本框中键入数字一样)。如何实现此结果?听起来您已经有了一个可以迭代所有文本框的循环。在循环的主体中,添加如下内容 Random rnd = new Random(); // Do you loop here if (string.IsNullOrEmpty(textBox.Text))

我的表格是这样的:

正如你所看到的,有一堆纸箱。我为所有文本框创建了一些循环,以检查它们是否为空、null或是否仅包含数字


现在我想做的是生成随机数,并将它们放入所有空的文本框中(就像用户在文本框中键入数字一样)。如何实现此结果?

听起来您已经有了一个可以迭代所有文本框的循环。在循环的主体中,添加如下内容

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
如果出于某种原因始终希望文本框中的值相同,可以使用构造函数将种子指定为随机

  • 生成一个随机数。使用Math.Random和另一个数学操作来实现这一点。取决于你想要什么类型的数字(整数,正数,最多100,随便什么)
  • 如果每个控件为Textbox,则在Form.Controls测试中循环。对于这些情况,强制转换它们并设置值,如((Textbox)control)。Text=randomNumber

        int randomNumber;
        foreach (Control control in this.Controls)
        {
            randomNumber = //your randomMagic
    
            if (control is TextBox)
            {
                ((TextBox)control).Text = randomNumber;
            }
        }
    
  • 希望这有助于您生成随机数:

           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();
               }
           }
    
    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();
    
    var random=new random();
    var emptyTextBox=Controls.OfType()
    。其中(txt=>txt.Text.Length==0);
    foreach(清空文本框中的var txt)
    txt.Text=random.Next(11000.ToString();
    
    @SaeedAmiri。你错了。文本从不为空,是一个空字符串。你试过了吗?
    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();
            }
        }
    }