現在VC++/CLR 2005 でプログラミングをしています。
基本的な事柄かもしれませんが、質問させてください
以下の2つのボタンのイベントハンドラ関数があった場合
//ボタン1のイベントハンドラ関数
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
String^ str = textBox1->Text
}
//ボタン2のイベントハンドラ関数
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
}
ボタン2をクリックしたときの動作とボタン1の動作を同じにしたいと思っています。
その場合は
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
String^ str = textBox1->Text
}
//ボタン2のイベントハンドラ関数
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
String^ str = textBox1->Text
}
のようにボタン2のイベントハンドラ関数をボタン1と同じように書けばいいのですが
イベントハンドラ関数の処理が膨大になった場合を考えて省略する
書き方は無いのでしょうか?(以下の場合ですとエラーが起こってしまいます。)
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
button1_Click();
}
宜しくお願いします
No.1
- 回答日時:
button2_Clickイベントハンドラは引数としてイベントの送信元のオブジェクト(Object sender)と、イベントに関連するイベント情報(EventArgs e)を要求するのでそれを渡してやることでbutton1_Clickを流用することもできます。
例を書くと
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
button1_Click(sender, e);
}
のようになると思います。
私はC++/CLIを使ったことはなく、C#で.NETを使っているのですが、同じ方法(構文の一部は違いますが)で動かせると思います。
無事動きました。
私もC++/CLIは非常にC#と似通ってる部分があるので
C#のWEBサイトを見てプログラミングしております。
System::Object^ sender, System::EventArgs^ e
の仕組みが分かりました。
貴重なアドバイスありがとうございます。
No.2
- 回答日時:
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
button1_Click(sender,e);
}
これで呼べませんか?もしかして違うクラスにあるとかかな?
でも、同じのがいっぱいあるなら、デリゲートとか使うのもいいのかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
- Visual Basic(VBA) 九九の答えの計算 3 2022/12/20 22:13
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Gmail 【お助け!】サーバーからのメール送信でGmailに送信されない問題について 1 2023/06/20 22:03
- 英語 下記の英文の日本語訳をお願いします。 1 2023/03/02 10:01
- 英語 下記の英文を日本語に訳して、その意味を教えてください。 1 2023/03/09 14:13
- 英語 『G19 Gen5 MOS - Modular Optic System for Gen5』 の 『 1 2023/03/05 13:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
フォームの再読み込み
-
Excel VBA Application.caller...
-
CommandButtonのCaptionを変化...
-
コマンドボタンやイメージにマ...
-
セルをマクロのボタンにしたい。
-
ボタン
-
Access VBA でデータペーストを...
-
VBA でエクセルにパスワードを...
-
[Excel VBA]コマンドボタンの入...
-
C♯初心者で、四則演算の電卓を...
-
VB.net でトグルボタンを実現し...
-
VBAのボタンの位置が変わって困...
-
VBAでオプションボタンによって...
-
ASP.Net ラベルの内容をすぐに...
-
コマンドボタンの文字色
-
フォームから別のフォームを呼...
-
閉じると「+」になり開くと「-...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
フォームの再読み込み
-
ユーザーフォームに別シートか...
-
VBA CommandButtonの文字ずれ
-
セルをマクロのボタンにしたい。
-
コマンドボタンやイメージにマ...
-
Excel VBA Application.caller...
-
VBAのボタンの位置が変わって困...
-
Access VBA でデータペーストを...
-
プロシージャからイベントをコ...
-
他のアプリケーションとの連携
-
閉じると「+」になり開くと「-...
-
C#で動的に作ったtextboxを消す。
-
ボタンをマウスで押し続けたと...
-
VBA でのボタンの移動について
-
ボタン
-
CommandButtonのCaptionを変化...
-
TextBoxでEnterキーを押すと、...
-
VB.net でトグルボタンを実現し...
おすすめ情報