[英]C# Assign Each TxtBox a array index?
我正在寻找比这里更优雅的解决方案
{
public partial class Form1 : Form
{
private int[] randomArray = new int[7];
int Min = 1;
int Max = 60;
Random rand = new Random();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
genBtn.Focus();
}
private void genBtn_Click(object sender, EventArgs e)
{
for (var i = 0; i < randomArray.Length; i++)
{
randomArray[i] = rand.Next(Min, Max); // Remember to assign random number
}
boxNum1.Text = randomArray[0].ToString();
boxNum2.Text = randomArray[1].ToString();
boxNum3.Text = randomArray[2].ToString();
boxNum4.Text = randomArray[3].ToString();
boxNum5.Text = randomArray[4].ToString();
boxNum6.Text = randomArray[5].ToString();
boxNum7.Text = randomArray[6].ToString();
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
}
}
我讨厌boxNum1.Text-randomArray [0] .ToString(); 但这是我能做到的唯一方法,有没有我没有考虑过的更明显的解决方案?
将您的盒子放到一个数组中,删除randomArray
,然后直接分配Text
属性:
private void genBtn_Click(object sender, EventArgs e) {
foreach (box in new[]{boxNum1, boxNum2, boxNum3, boxNum4, boxNum5, boxNum6, boxNum7}) {
box.Text = rand.Next(Min, Max).ToString();
}
}
我以为[创建]文本框数组
您可以在类级别而不是本地级别创建一个数组:
private readonly TextBox[] allBoxes;
public Form1() {
InitializeComponent();
allBoxes = new TextBox[] {
boxNum1, boxNum2, boxNum3, boxNum4, boxNum5, boxNum6, boxNum7
};
}
private void genBtn_Click(object sender, EventArgs e) {
foreach (box in allBoxes) {
box.Text = rand.Next(Min, Max).ToString();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.