0

我的任务是使用一个按钮来设置输入到数组中的值。用户将按下按钮输入一个值,一旦按下按钮,用户输入的值就会存储到一个数组中。我的老师(是的,这是一个家庭作业问题)说他希望它一次只做一个值。

我遇到的问题是,我只是不知道要写什么才能发生这种情况。我试着看看我在活动中能做些什么,但这让我无处可去,除非答案就在那里,而我只是完全错过了它。

任何关于在哪里看的建议,或者关于写什么的想法都会很棒。

private void addToArray_Click(object sender, EventArgs e)
{
    Button bclick = (Button) sender;

    string variables = addArrayTextBox.Text;
    int []vars = new int[5];
    vars = parseVariableString(variables);
    int numberIndex = 0;

    for (int i = 0; i < vars.Length; i++)
    {
        int indexNumber = vars.Length;
        numberIndex = indexNumber;
    }
    integerTextBox.Text = numberIndex.ToString();
}

是我目前打出来的。

4

3 回答 3

1

让你开始

让我们先把图形设计师的东西排除在外:

  1. 制作你的 winforms 项目
  2. 拖放一个按钮
  3. 拖放文本框
  4. 双击按钮以创建button_click事件处理程序

接下来,您可能希望您的数组保持在范围内,最简单的方法是将其声明为Form1实例的字段,然后在“Form1 构造函数”中实例化和/或初始化它。

然后你可以从你的事件处理程序访问它

例子:

public partial class Form1 : Form
{
    int[] vars;
    int intergersEntered;
    public Form1()
    {
        InitializeComponent();

        vars = new int[5];
        intergersEntered = 0;
        // insert other initialization here
    }

    private void button1_Click(object sender, EventArgs e)
    {
       vars[0] = int.Parse(textBox1.Text);
       intergersEntered++;
       textBox2.Text = intergersEntered.ToString();
    }
...
于 2013-03-05T19:25:21.190 回答
0

在我看来,每次单击“添加到数组”按钮时,您只需将数组大小调整为大一:

private void addToArray_Click(object sender, EventArgs e)
{

    //Calculate the new size of the array
    int newLength = arrayOfIntegers.Length + 1;

    //Resize the array
    Array.Resize(ref arrayOfIntegers, newLength);

    //Add the new value to the array
    //Note that this will fail if the textbox does not contain a valid integer.  
    //You can use the Integer.TryParse method to handle this
    arrayOfIntegers[newLength] = Integer.Parse(addArrayTextBox.Text);  

    //Update the text box with the new count
    integerTextBox.Text = newLength.ToString();
}
于 2013-03-05T19:46:33.560 回答
0

我不确定我是否会根据您的代码得到您的问题。释义,您想在按下按钮时将数组长度增加 1,是吗?

public partial class Form1 : Form
{
    private int[] vars;

    public Form1()
    {
        InitializeComponent();
        vars = new int[5];
    }

    private void button1_Click(object sender, EventArgs e)
    {
        int[] tmp = new int[vars.Length + 1];
        vars.CopyTo(tmp, 0);
        vars = tmp;
    }
}
于 2013-03-05T19:14:51.217 回答