C#にてフォームアプリを作成しています。
そこでツリービューに表示されたノードを右クリックしたときにコンテキストメニューが表示される
ように下記のように記述しました。表示されたノードの上で右クリックすると「Export」、「Import」
というメニューが表示されます。
しかし、イベントハンドラの書き方がよくわかりません。
「Export」又は「Import」がクリックされたというイベントはどう検出すればよいでしょうか。
// ノード右クリック時の動作
private void treeView1_MouseDown(object sender, MouseEventArgs e)
{
// 右クリックでもノードを選択させる
if (e.Button == MouseButtons.Right)
{
// ノードの選択
treeView1.SelectedNode = treeView1.GetNodeAt(e.X, e.Y);
// コンテクストメニューの作成
ContextMenuStrip contextMenu = new ContextMenuStrip();
ToolStripMenuItem openLabel = new ToolStripMenuItem();
openLabel.Text = "Export";
ToolStripMenuItem deleteLabel = new ToolStripMenuItem();
deleteLabel.Text = "Import";
contextMenu.Items.Add(openLabel);
contextMenu.Items.Add(deleteLabel);
// ツリービューにコンテキストメニューを追加
treeView1.ContextMenuStrip = contextMenu;
}
}
No.1ベストアンサー
- 回答日時:
ToolStripMenuItemにはClickイベントがありますから,Clickイベントを普通に検出すればよいです。
詳しくはC#の文法書をお読みください。
a) ラムダ式を使ってハンドラを書く
openLabel.Click += (_, __) => { MessageBox.Show(this, "Export"); };
deleteLabel.Click += (_, __) => { MessageBox.Show(this, "Import"); };
b) 別途メソッドを用意してハンドラを追加する
private openLabel_Click (object sender, EventArgs e)
{
MessageBox.Show(this, "Export");
}
private deleteLabel_Click (object sender, EventArgs e)
{
MessageBox.Show(this, "Import");
}
openLabel.Click += openLabel_Click;
deleteLabel.Click += deleteLabel_Click;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Chrome(クローム) 【 Chrome 】鎖のアイコンの「Copy Link Text」が機能しなくなりました。 1 2023/03/27 10:32
- Excel(エクセル) [貼り付けオプション]とは? 3 2022/04/17 08:15
- Windows 10 「新規作成」メニューが表示されません 2 2023/04/07 14:56
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- Visual Basic(VBA) Excel VBAでの右クリックのポップアップメニューの非表示方法は? 1 2023/04/12 17:03
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- Photoshop(フォトショップ) 写真に日付を入れるのがそんなに大変か 9 2023/07/22 14:38
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
C#で、ContextMenuStripに動的に項目を追加したい。
その他(プログラミング・Web制作)
-
マウスの右クリックでコンテキストメニューを表示/非表示させたい。
Visual Basic(VBA)
-
別のフォームで記述している関数を実行するには?C#
C言語・C++・C#
-
-
4
コンボボックスの開いたリストを閉じるには
Access(アクセス)
-
5
textboxユーザーコントロールのコピー&ペースト制御
Visual Basic(VBA)
-
6
drawStringで文字間隔の調整
Java
-
7
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
8
DataGridViewでグリッド内に線を引きたい
Visual Basic(VBA)
-
9
VB.NETでマウスクリックイベントを発生させたい。
Visual Basic(VBA)
-
10
配列を使わずに、変数名を動的にループで回したい
C言語・C++・C#
-
11
Ctrl + Cなど複数の入力キーの感知
Visual Basic(VBA)
-
12
C#でドラッグ&ドロップが機能しない。
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
SNMP リンクダウンとノードダ...
-
同じタグ名の項目取得
-
ツリービューのノードをダブル...
-
ルート要素ノードが2個ある場合?
-
【C#】TreeViewがクリックされ...
-
VB6.0でDOMを使用して...
-
xpath でn番目のテキストノード...
-
昔Winnyってありましたけど、あ...
-
C++Builder 6でツリービュー(...
-
ノードとは
-
バッチファイルでテキストファ...
-
XMLファイル内のデータ(値)を変...
-
htmlに変換されない
-
UTF-8でエンコーディングとはど...
-
VB6でXMLを作成しているのです...
-
特殊記号が勝手にエスケープさ...
-
xmlstarletで他ファイルからエ...
-
XSLTでの正規表現判定
-
VBでXMLファイルを作ると xmlns...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
SNMP リンクダウンとノードダ...
-
同じタグ名の項目取得
-
昔Winnyってありましたけど、あ...
-
コンテキストメニュークリック...
-
ルート要素ノードが2個ある場合?
-
マスターノード
-
複数のマックPCによる数値計算...
-
あるノードリストに、特定の名...
-
TreeView の初期表示について
-
TreeViewの再表示のちらつきを...
-
ツリービューのノードをダブル...
-
C# TreeView 効率良いノード追...
-
ノード数とは?
-
XML文書の指定した属性値を持つ...
-
C#のツリービューでツリーノー...
-
VB6.0でDOMを使用して...
-
TreeViewで複数ノードの選択は...
-
ノードとは
-
VisualBasic.net(2008) ツリー...
おすすめ情報