0

配列に入力された値を設定するボタンを用意する必要があります。ユーザーはボタンを押して値を入力します。ボタンを押すと、ユーザーが入力した値が配列に格納されます。私の先生(はい、これは宿題の質問です)は、一度に1つの値だけを実行することを望んでいると言いました。

私が直面している問題は、これを実現するために何を書くべきかわからないということです。私はイベントで何ができるかを調べてみましたが、答えがそこにあり、完全に見逃していない限り、それはどこにも行きませんでした。

どこを見るべきかについての提案、または何を書くべきかについてのアイデアは素晴らしいでしょう。

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

あなたのコードに基づいてあなたの質問を得るかどうかはわかりません。言い換えると、ボタンが押されたときに配列の長さを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 に答える
0

[配列に追加]ボタンをクリックするたびに、配列のサイズを1つ大きくする必要があるようです。

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 に答える