C#WinForms-TreeView、コンテキストメニュー
-
05-07-2019 - |
質問
コンテキストメニューを使用して、子ノードをツリービューコントロールに追加するとします。
(1)ノードを右クリックしています
(2)コンテキストメニューポップアップ
(3)次に、「追加」をクリックします。メニュー項目
(4)ダイアログボックスが開きます
(5)そのDialogBoxに名前を入力し、OKを押します
(6)新しいノードが作成されます。
コンテキストメニュー項目をクリックしているときに、現在のノードの参照を取得するにはどうすればよいですか?
このオブジェクトが必要なのは、親オブジェクトが現在のノードのTagプロパティに保存されているためです。
解決
TreeNodeMouseClick
の場合、 TreeNodeMouseClickEventHandler
には TreeNodeMouseClickEventArgs
引数が渡されます。
TreeNodeMouseClickEventArgs.Nodeは、必要なTreeNode参照になります。 を参照してください。 TreeNodeMouseClick
のドキュメントの例:
void treeView1_NodeMouseClick(object sender,
TreeNodeMouseClickEventArgs e)
{
TreeNode theTreeNodeIWant = e.Node
}
必要に応じて、別のメソッドがアクセスできるように、参照をメンバー変数に保存できます。
他のヒント
マウスの位置は次から取得できます
System.Windows.Forms.Cursor.Position
コンテキストメニューを表示する前にこれを保存します。
次に、アイテムを含むツリービューのメソッドを使用します
GetChildAtPoint(Point)
そしてその下に子を追加します。
所属していません StackOverflow