dポイントプレゼントキャンペーン実施中!

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;
}

どなたかアドバイスをよろしくお願い致します。

A 回答 (2件)

ラベルを乗せているコンテナ(Form?Panel?)にコントロールのコレクションがないか確認してください。



 int i = 1から10の乱数
 char ctrlName[16];
 ctrlNameに文字列"Label"+iの値を編集したものをセット。

 this->Controls(ctrlName)->Text = ....

お役に立てなかったらごめんなさい m(_ _)m

参考URL:http://msdn2.microsoft.com/ja-jp/library/system. …

この回答への補足

お返事ありがとうございます!

なるほど、Controlsってのがあるんですね!
試してみたいと思います!ありがとうございます!

補足日時:2006/10/20 03:15
    • good
    • 0

Labelオブジェクトを配列にしたら良いのではないでしょうか?

この回答への補足

ご回答ありがとうございます!

なるほど、実はオブジェクトを配列にできればできるのにな、とは
思っていたのですが、具体的なコーディングが分からずに困っていました。

検索するとVBやVC#では具体例がよく見るのですが
VC++2005(C++/CLI)の場合はどうすればよいのでしょうか・・・?

ちなみに、label1の宣言は
private: System::Windows::Forms::Label^ label1;
となっています。

申し訳ございませんが、ご回答よろしくお願いいたします。

補足日時:2006/10/14 10:38
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!