C# 文本框中的数组值

C# 文本框中的数组值,c#,C#,我有一个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] =

我有一个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;
}
for(int i=0;i<16;i++)
{
数组[i]=(int)框[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);
            }
        }
    }
}
公共部分类表单1:表单{
文本框[,]文本框;
int[,]值;
公共表格1(){
初始化组件();
textboxs=新的TextBox[4,4];
value=newint[textboxs.GetLength(0),textboxs.GetLength(1)];
对于(int r=0;r
您可以使用一个函数,使用表单控件集合中的“索引”将文本框的文本作为整数获取:

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

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

没有比这更干净的了。您可以使用
(this.FindControl(“textBox”+i)作为textBox)。Text
,但如果您同意上述内容,则会丢失类型安全性。另一种可能是设置
TextBox
控件数组,如
Control[]aTextBoxes=new控件[]{textBox1,textBox2,…},然后使用(
)for(int i=0;i
(完全使用
try catch
块或先检查数组的长度)最好使用控件的正确名称,或在表单类中定义
文本框[]
字段。此外,还有和数组之类的东西。