• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VisualStudio 2008 Express)

VisualStudio 2008 ExpressでGUIの勉強をしていますが、ボタンを押しても何も起こらない

このQ&Aのポイント
  • 無料でダウンロードしたVisualStudio 2008 Express Editionを使用してGUIの勉強をしています。
  • 非情報系学生向けのC/C++入門サイトの「第三回 GUIと画像処理プログラミング」を参考にしていますが、フォーム上のボタンを押してもメッセージボックスが表示されません。
  • ボタンのイベントハンドラーに自分の追加した部分も含めたヘッダーファイルの内容を記載しています。詳しい方にアドバイスをいただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

普通はイベントハンドラが作成されるとき(デザインモードでボタンをダブルクリックしたり、プロパティウィンドウのイベント名を入力したりしたとき)、自動的にイベントとイベントハンドラの関連付けがされるはずですが、イベントハンドラが作成された後で、一度デザインモードでボタンを削除されたりしたのではないでしょうか。 デザインモードで button1 を選択した状態で、プロパティウィンドウ(表示されていなければメニューの「表示」→「プロパティウィンドウ」)のイベントボタン(カミナリのアイコン)をクリックし、「Click」の行のコンボボックスから「button1_Click」を選択するか、直接、 this->button1->UseVisualStyleBackColor = false; の直後あたりに this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click); を追加すれば、button1 クリックイベントが動作すると思います。

papashiroSooke
質問者

お礼

早速お返事いただいて、有難うございます。 確かに、いろいろと実験的にいじくり回している間に、一度ボタンを消した記憶があります。その後またボタンを追加したので問題はないと安易に考えていたようです。 教えていただいた方法でClickのコンボボックスからbutton1_Clickを選択して、再度ビルドし、メッセージボックスが出ました。いい勉強になりました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

>private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) >{ ... >} は、もしかして自分でタイプされたのでしょうか、それとも そのサイトに書かれているように「ボタンをダブルクリック」されたのでしょうか? たぶんイベントハンドラーの登録がされていないだけだと思いますが プロパティウインドウの稲妻ぽいアイコンをクリックして Clickの内容を調べてみて、button1_Click以外であればbutton1_Clickに変更してみてください。

papashiroSooke
質問者

お礼

早速お返事いただいて、有難うございます。 掲載しましたプログラムコードは、自分で追加した1行の他はすべて自動的に生成されたものです。 教えていただいた方法でClickのコンボボックスからbutton1_Clickを選択して、再度ビルドし、メッセージボックスが出ました。いい勉強になりました。 第一回答者さんと同様の内容で、いずれもベストアンサーとしたいところですが、第一回答者さんのほうが若干早かったということで、そちらのほうをベストアンサーに選ばせていただきます。しかし私が感じる感謝の気持ちはどちらも全く同じですので、悪しからずご了承ください。本当に有難うございました。

すると、全ての回答が全文表示されます。

関連するQ&A