|
レスありがとうございます。
■No30942 (囚人 さん) に返信 > デバッガで止めて sender の型を調べたら、両者で型の違いがわかると思いますよ。
ウォッチで「型」の部分が隠れてて、見落としてました。 ここで初めて気がついたのは、どちらも「ToolStripMenuItem」と言う型でした。 今まで見ていなかったので、「MenuStrip」「ContextMenuStrip」と言う型であろうと 思い込んでました。 型が違うのであれば、最初のやり方(isを使う)で良かったのですね。
> でも、単純にイベントハンドラを2つ書いて両方から「終了処理」という共通メソッド呼んだ方が単純だと思いますけどね。
最初はそうやっていたのですが、 勉強がてら今回のような事をやってみようと思いまして。 確かにそちらの方が単純ですよね。 ■No30943 (επιστημη さん) に返信
> 双方のTagに異なる値を割り当てといて、そいつで判断するてのはいかがでしょ。
(επιστημηさんはどちらも「ToolStripMenuItem」と言う型であるのを 見越して回答頂いたのでしょうか?(^^;))
早速プロパティに設定して実行してみたのですが、 Tagの中身がnullになってしまいます。
private void AppEnd_Proc(object sender, EventArgs e) { string strTag = strTag = ((ToolStripMenuItem)sender).Tag.ToString();
if (String.Compare(strTag, "Main") == 0) MessageBox.Show("メインメニュー!"); else MessageBox.Show("コンテキストメニュー!"); : : }
すみません。何が悪いのかもう少しだけお教えいただけますか?
|