文本框中的数组值

本文关键字:数组 文本 | 更新日期: 2023-09-27 18:11:45

我有一个16元素int数组和16个文本框(textBox1, textBox2 ....),看起来像4x4矩阵。有没有办法把文本框值放到每个数组元素,而不使用这样的代码:

array[1] = (int)textBox1.Text;
array[2] = (int)textBox2.Text;

文本框中的数组值

一种可能是将对TextBox实例的引用存储在数组中。

TextBox[] Boxes;

然后使用'for'循环填充值。

for (int i = 0; i < 16; i++)
{
   array[i] = (int)Boxes[i].Text;
}

您可以使用一个函数来获取文本框的文本作为一个整数使用它的"index"从窗体的控件集合:

int GetBoxText(int index)
{
  return Convert.ToInt32(this.Controls["textBox" + i.ToString()].Text);
}

注意,这没有任何类型的错误检查。如果你想的话可以加一些。所有这些都是从表单的控件集合中获取名为textBox + i的控件的文本,并将其转换为整数。

我认为最好的设计方式就是按照它的本意去做。特别是,矩形/多维数组在这种情况下可能很有用:

public partial class Form1 : Form {
    TextBox[,] textBoxes;
    int[,] values;
    public Form1() {
        InitializeComponent();
        textBoxes = new TextBox[4, 4];
        values = new int[textBoxes.GetLength(0), textBoxes.GetLength(1)];
        for(int r = 0; r < textBoxes.GetLength(0); r++) {
            for(int c = 0; c < textBoxes.GetLength(1); c++) {
                values[r, c] = int.Parse(textBoxes[r, c].Text);
            }
        }
    }
}