簡體   English   中英

以編程方式將隨機數字放入C#中所有形式的文本框中

[英]Programmatically place random digits into all textboxes of form in c#

我的表格如下所示:

在此處輸入圖片說明

如您所見,有一堆texbox。 我為所有文本框創建了一個循環,以檢查它們是否為空,為null或僅包含數字。

現在,我要做的是生成隨機數並將其放入所有空文本框中(就像用戶在文本框中輸入digit一樣)。 我怎樣才能達到這個結果?

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();

聽起來您已經有了一個可以迭代所有文本框的循環。 在該循環的主體中,添加類似

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。

  1. 生成一個隨機數。 結合使用Math.Random和另一個數學運算來實現此目的。 取決於您想要的號碼類型(整數,正數,最多100個,無論如何)
  2. 如果每個控件都是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();
           }
       }
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();
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM