1

Windowsフォームアプリケーションを作成します。TreeViewのフォームに、いくつかのノードを追加し、ContextMenuStripを追加します。

  var menu = new ContextMenuStrip();
  menu.Items.Add("Some text", new Bitmap(1, 1), new EventHandler(function_name));

  var treeView = new TreeView(..);
  treeView.ContextMenuStrip = menu;      

  treeView.Nodes.Add(new TreeNode()
  {
         ...
         Tag = someObject
  });

function_name私の問題は、treeNodeがクリックされ、ContextMenuStripからオプションを選択した関数をどのようにチェックインできるかです。

編集

function_name sygnature

 public void pokaz_DoubleClick(object sender, EventArgs e)
 {
 }
4

3 に答える 3

1

TreeNodeMouseClickイベントを処理できます。TreeNodeMouseClickEventArgsTreeNodeMouseClickEventHandlerで、引数にアクセスできます。この引数には、どのノードでどのマウスボタンがクリックされたかを確認するために使用できるいくつかのプロパティが含まれています。例えば。

private TreeNode rightClickeNode;

void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        rightClickedNode = e.Node;
    }
}

その後、からrightClickedNodeにアクセスできますfunction_name

于 2011-08-30T07:54:01.343 に答える
1

コンテキストメニューが表示される直前にノードを選択することができ、SelectedNodeプロパティを確認するだけで済みます。このようなもの:

private void treeView_MouseDown(object sender, MouseEventArgs e)
{
    //See what node is at the location that was just clicked
    var clickedNode = treeView.GetNodeAt(e.Location);

    //Make that node the selected node
    treeView.SelectedNode = clickedNode;
}

private void function_name(object sender, EventArgs e)
{
    var currentNode = treeView.SelectedNode;

    //Do something with currentNode
}
于 2011-08-30T07:56:56.203 に答える
1

function_nameメソッドのシグネチャは何ですか?

通常、送信者パラメータの内容を確認できますが、パラメータのプロパティを確認できる場合は、ではTreeViewなく、である可能性があります。TreeNodee

もう1つの方法は、マウスを下に置くたびに、TreeViewでマウスの下のノードを選択していることを確認して、function_name実行時にノードを取得することです。treeview.SelectedNode

于 2011-08-30T07:43:26.593 に答える