- ベストアンサー
操作するラベルを動的に変化させたい
Label1~Label10のラベルがあり ボタンを押すと1~10までの乱数が発生し 対応したラベルの表示が変わるというプログラムを作っています。 以下のようなswitch文で、1の場合はLabel1、10の場合はLabel10、という風にはできるのですが そうではなく、Labelという文字列に乱数をひっつけてそれを操作ラベル名としたいのですが、やりかたが分からなくて困っています。 switch(乱数){ case 1: Label1->Text = "Hello, World!"; break; ・ ・ ・ case 10: Label10->Text = "Goodbye, World!"; break; } どなたかアドバイスをよろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ラベルを乗せているコンテナ(Form?Panel?)にコントロールのコレクションがないか確認してください。 int i = 1から10の乱数 char ctrlName[16]; ctrlNameに文字列"Label"+iの値を編集したものをセット。 this->Controls(ctrlName)->Text = .... お役に立てなかったらごめんなさい m(_ _)m
その他の回答 (1)
- clsdi99
- ベストアンサー率63% (31/49)
Labelオブジェクトを配列にしたら良いのではないでしょうか?
補足
ご回答ありがとうございます! なるほど、実はオブジェクトを配列にできればできるのにな、とは 思っていたのですが、具体的なコーディングが分からずに困っていました。 検索するとVBやVC#では具体例がよく見るのですが VC++2005(C++/CLI)の場合はどうすればよいのでしょうか・・・? ちなみに、label1の宣言は private: System::Windows::Forms::Label^ label1; となっています。 申し訳ございませんが、ご回答よろしくお願いいたします。
補足
お返事ありがとうございます! なるほど、Controlsってのがあるんですね! 試してみたいと思います!ありがとうございます!