0

C ++に関する論文を書き始めましたが、最も経験豊富なC ++プログラマーが言うところの、小さな問題があります...

Visual Studio 2008を使用しており、.NETを使用してVisualC++でコーディングしています。ボタンがクリックされるたびにテキストボックスに新しい行を追加する、最も小さなアプリケーションをコーディングしようとしています。新しい行を追加するのは簡単ですが、各行に増分整数を追加したいと思います。たとえば、最初にボタンをクリックすると、「これは1行目です」がテキストボックスに追加され、2回目にクリックすると「これは2"行目がテキストボックスに追加されます。私は自分のプログラミングに少し錆びていて、これを可能にするループ構造を考えることができません。

以下に、ボタンのハンドラーのコード(いくつかの擬似コードを含む)を示します。

private: System::Void addLine_Click(System::Object^  sender, System::EventArgs^  e) {

    int i = 0;
    if(button is clicked){
      listBox->Items->Add("This is line " + i);
      i++;
    }

}

Should output something like: 

This is line 1
This is line 2
This is line 3
This is line 4
This is line 5
             .
             .
             .
This is line i

ボタンの名前は「addLine」で、これらの行を表示するリストボックスの名前は「listBox」と呼ばれます。

このC++noobを支援してくれてありがとう:)。

4

2 に答える 2

1

iはローカル変数であるため、関数が終了するたびにスコープが失われます。iをとして宣言するかstatic、クラス変数として作成する必要があります。

private: System::Void addLine_Click(System::Object^  sender, System::EventArgs^  e) {

    static int i = 0;
    if(button is clicked){
      listBox->Items->Add("This is line " + i);
      i++;
    }

}
于 2012-07-20T06:24:27.287 に答える
0

私はクラスのメンバーである必要があります-そうでない場合、増分は関数の呼び出しに耐えられません。

于 2012-07-20T06:22:44.197 に答える