我在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;
}
}
}
答案 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正在进行:)