OK、私の問題を説明させてください。
ボタンのあるプログラムに取り組んでいます。クリックすると数値「1」が表示され、その後クリックすると「9」の値に達するまでその値が増加します。(文字列です)。私はint変数を0に宣言するこのコードを書きました(はい、これは間違いでしたが、続行させてください)、それをインクリメントして文字列に解析し、ボタンのテキストに表示します(これはボタンのクリックで実行されるコードです):
private: System::Void a0_Click(System::Object^ sender, System::EventArgs^ e) {
int i = 0;
i++;
a0->Text = i.ToString();
}
ただし、ご想像のとおり、ボタンを押すたびに0でiを宣言するのは愚かだったので、ボタンに表示される値は1だけでした。次に試したのは、iを値0のグローバル変数として宣言することでした。しかし、別の問題が発生しました。私はその種のボタンを82個持っており、見つけることができる最も簡単な解決策を探しているので、i変数を共有することは論理的であるように見えました。
次の問題は、最初のボタンを5回押すと、表示される数字が「5」になることですが、別のボタンを押すと、値はデフォルトで「1」ではなく、「6」になります(最初のボタンの値が1つ増えます)。基本的には、最初の値を継承します。
今、私は行き止まりになっています。どうしたらいいのかわからない。iとi2を使ってみましたが、自分のしっぽを追いかけていました。これに対する非常に簡単な解決策はありますか?デフォルトで0である82個のボタン(はい、たくさんあることはわかっています)があることに注意してください。各ボタンをクリックすると、0から始めて1ずつインクリメントする必要があります。何か案は?
注:OSはWindows XP、IDEはWindowsフォームアプリC ++/CLIを使用するVisualStudio2010mです。コメントに投稿することを忘れた場合は、追加します。