[英]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。
如果每個控件都是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.