Q質問

VisualC++を使い始めて楽しさを覚え始めた頃ですが、壁にぶつかり解決できません。よろしくお願いいたします。

Windowsフォーム作成において、ボタンやラベルなど、ツールボックスからドロップできるコントロールを配列にする方法が分かりません。
ためしにボタンを二つは配置してから、Button1とButton2がButton[0]とButton[1]になるように定義から書き直してみましたが、
private: System::Windows::Forms::Button^ button[2];
の行で、
「: error C2728: 'System::Windows::Forms::Button ^ : ネイティブ配列はこのマネージ型を含むことはできません”」
とエラーがでます。

どうすれば、コントロールの配列を作れるのでしょうか。できるだけ簡単な方法(できればVisualC++の機能でGUIでサクッと作れれば良いのですが)をご教授願います。 過去の質問に似たものがありましたが、参照先のリンクが切れていました。。

A 回答 (2件)

array<Button^>^ button = gcnew array<Button^>(2);
ではダメですか?

    • good
    • 0

この回答へのお礼

あ、できました!!!
ありがとうございます。
しかし、なぜデザイナでサクッとできないのか。。。
コントローラをマトリックス状に配置するとかのニーズは多いと思うのですが。。。
というわけで、もう少し締め切りを待ってみます。

お礼日時:2008/07/10 01:05

うろ覚えで申し訳ないのですが
VC++でコントロールの配列をGUIでは作成できなかったような...気がします。Windowsフォームでコントロールの配列を扱う場合、フォームのメンバ変数か(なんでも良いんですが...)何かで、例えばButtonの配列を用意しておいて、フォームのプロパティから、Controls.Add とかでフォーム上に配置するような操作をしたような記憶があります。
(その場合配列の各要素のButtonコントロールごとに座標とかサイズとか設定してやる必要があったと思います。基本的に動的コントロールなので、どうしてもプロパティ関連はコーディング依存になってしまったかと)

(ちなみに:コントロールを配列にしたい理由って、例えば一気にEnableをfalseに設定したり...とかそういうった状況でしょうかねやっぱり。)

    • good
    • 0

この回答へのお礼

やっぱりGUIでは無理ですかね・・・。
ありがとうございます。参考にして試してみます!
あ、そうですね、配列にしたい理由を言えば、配列にしない他の方法もご提案頂けるかもしれません。
といっても、ご想像通りの理由ですが。。。複数のコントロールに同様の操作をする際にひとつひとつ書かなければならないし、コードが長くなるからです。

お礼日時:2008/07/09 22:39

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

注目の記事

基本情報技術者試験の言語ってどうやって選ぶ?

SEを目指す場合、基本情報技術者試験を経て実務に就いた人も多いのではないでしょうか。教えて!gooにはSEを目指している質問者からこんな質問が寄せられました。 「基本情報技術者試験のC言語とJavaの違い?」 将...

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報