![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
C#3.5を使用しています。
TreeViewのContestMenuStripのToolStripMenuItemをクリックしたときに
どの(複数のノードに同じContestMenuStripをセットしています)TreeViewのノードからのToolStripMenuItemが
クリックされたかを知るためにEventArgs e からTreeViewの選択されてるノードが取得したいのですが、
どうすれば良いのでしょうか?
private void itemAddToolStripMenuItem_Click(object sender, EventArgs e)
{
var ev = (System.Windows.Forms.ToolStripItemEventArgs)e;// ToolStripItemEventArgsにキャストすればよいかと思ったのですがエラーになります・・・
}
No.1ベストアンサー
- 回答日時:
こんにちは。
ToolStripItemEventArgsはItemAddedイベントからくるものなので、型が合わないのではないでしょうか。
http://msdn.microsoft.com/ja-jp/library/system.w …
取り合えず、ツリービューのClickイベント辺りで、コンテキストストリップを開く際、Tagメンバにツリービューのオブジェクトを入れて、コンテキストストリップのItemClickedイベントで取り出して見ると言うのは如何でしょう。
//ツリービューのClickイベント
private void treeView1_Click(object sender, EventArgs e)
{
MouseEventArgs mea = (MouseEventArgs)e;
if (mea.Button != MouseButtons.Right)
return;
TreeView treeView = (TreeView)sender;
//Tagにツリービューのオブジェクトを入れる
this.contextMenuStrip1.Tag = treeView;
//コンテキストストリップを表示
this.contextMenuStrip1.Show(treeView, mea.Location);
}
//コンテキストストリップのItemClickedイベント
private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
ContextMenuStrip cms = (ContextMenuStrip)sender;
//先程記録しておいたツリービューのオブジェクトを取り出す
TreeView treeView = (TreeView)cms.Tag;
//ツリービューに選択されているノードが無ければ引き返す
if (treeView.SelectedNode == null)
return;
//選択されているノード名を表示する
MessageBox.Show(treeView.SelectedNode.Name);
}
ご返答ありがとうございます。
なるほど、まずツリービューのイベントでTagにセットするわけですね。
そのやり方でできました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- XML マスターノード 1 2023/03/14 10:38
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- その他(お金・保険・資産運用) お金配りのメール来ましたか? 4 2022/12/25 18:36
- Visual Basic(VBA) Visual Basic : ImageListの画像がそろったときにメッセージを表示 1 2023/07/20 13:53
- Windows 10 windowsでタスクバーのアイコンをクリックするだけですぐアクティブウィンドウに切り替えられるよう 1 2023/06/11 20:42
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
昔Winnyってありましたけど、あ...
-
アルゴリズム
-
TreeViewの再表示のちらつきを...
-
TreeViewの追加 C++Builder
-
C#でtreeviewの指定ノードを選...
-
ルート要素ノードが2個ある場合?
-
TreeViewについて
-
コンテキストメニュークリック...
-
あるノードリストに、特定の名...
-
ツリービューでクリック時にア...
-
DOMツリーの作り方。
-
TreeView と DOMツリー
-
2分探索木の高さを求めるプロ...
-
二分木の高さについて
-
ノードとは
-
TreeViewについて
-
XML文書の指定した属性値を持つ...
-
XSLTについて
-
ノード作成時、特別な処理を行...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
昔Winnyってありましたけど、あ...
-
ルート要素ノードが2個ある場合?
-
SNMP リンクダウンとノードダ...
-
同じタグ名の項目取得
-
コンテキストメニュークリック...
-
あるノードリストに、特定の名...
-
2分探索木の高さを求めるプロ...
-
XML文書の指定した属性値を持つ...
-
ノードとは
-
TreeViewに重複する値をセット
-
ツリービューのノードをダブル...
-
各ノードの行数取得
-
TreeViewで複数ノードの選択は...
-
最長経路探索
-
VB6.0でDOMを使用して...
-
ノード数とは?
-
複数のマックPCによる数値計算...
-
ツリービューを閉じさせたくない。
-
TreeViewの再表示のちらつきを...
おすすめ情報