C#使用多个文本框数组

时间:2015-11-04 15:00:37

标签: c# arrays winforms

What my program looks like, take a look before reading please.

我在Winforms中创建了一个项目,该项目应该从t数组中获取值,使用我尚未声明的C变量中的值添加它们并在tf文本框中显示结果我按下FIFO按钮时的数组。我的问题是,我似乎无法做到这一点。我一直在尝试定期添加,以及确保ti或t的内容在tf上显示,但似乎没有任何效果。我的主要问题是程序只取数组的第一个值,而不是全部取出它们。我将在下面发布我的代码。

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        foreach (Control c in this.Controls)
        {
            if (c.GetType() == typeof(TextBox))
            {
                ((TextBox)(c)).Text = "0";
            }
        }
    }

    private void fifo_Click(object sender, EventArgs e)
    {
        int c = 0;

        int[] ti = { 0, 1, 2, 3, 4, 5 };
        ti[0] = Convert.ToInt32(tiA.Text);
        ti[1] = Convert.ToInt32(tiB.Text);
        ti[2] = Convert.ToInt32(tiC.Text);
        ti[3] = Convert.ToInt32(tiD.Text);
        ti[4] = Convert.ToInt32(tiE.Text);
        ti[5] = Convert.ToInt32(tiF.Text);

        int[] t = { 0, 1, 2, 3, 4, 5 };
        t[0] = Convert.ToInt32(ta.Text);
        t[1] = Convert.ToInt32(tb.Text);
        t[2] = Convert.ToInt32(tc.Text);
        t[3] = Convert.ToInt32(td.Text);
        t[4] = Convert.ToInt32(te.Text);
        t[5] = Convert.ToInt32(tf.Text);

        int[] tf1 = { 0, 1, 2, 3, 4, 5 };
        tf1[0] = Convert.ToInt32(tfA.Text);
        tf1[1] = Convert.ToInt32(tfB.Text);
        tf1[2] = Convert.ToInt32(tfC.Text);
        tf1[3] = Convert.ToInt32(tfD.Text);
        tf1[4] = Convert.ToInt32(tfE.Text);
        tf1[5] = Convert.ToInt32(tfF.Text);

        for (int i = 0; i <= 0; i++)
        {

            ti[i] = tf1[i] + 5;
        }

    }
}

2 个答案:

答案 0 :(得分:2)

由于您始终使用6个元素,因此可以将数组创建更改为:

const int size = 6;
int[] ti = new int[size];
int[] t = new int[size];
int[] tf1 = new int[size];

循环变为

for (int i = 0; i < size; i++)
{
    ti[i] = tf1[i] + 5;
}

顺便说一下,+5表达式是什么意思?

答案 1 :(得分:0)

我不知道你认为你在fifo_click()中做了什么,但是因为你正在对函数范围内的变量这样做,所以它似乎不会做任何事情。 我不想让你为你工作,所以这只会给你一个正确的(?)方向,但是如果没有足够的呼喊。

如果你定义了许多相同的对象,那么我认为你应该考虑一个类。这些方面的东西:

class Element
{
  public int mValue;
  public TextBox mControl;
  public Element (TextBox control) {mControl = control;}
};
class FIFO
{
  public FIFO (Element[] elements) { ... }
  public void SetElement(int index, String value) {...}
  public Element[] mElements;
};

您希望将一组FIFO实例存储为类成员,然后它们将在调用之间保留其数据。

哦,并评论你的代码,因为它让你更容易理解WTF正在进行:)