我的表单看起来像这样:
如你所见,有很多texbox。我已经为所有文本框创建了一个循环来检查它们是否为空,为空或者它们是否只包含数字。
现在我想做的是生成随机数并将它们放入所有空文本框中(就像用户将数字键入文本框一样)。我怎样才能达到这个结果?
答案 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)
在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 :(得分: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();
}
}
}