2011-08-30 6 views
1

Windows 응용 프로그램을 만듭니다. 내가 양식 TreeView에, 나는 몇 노드를 추가하고 ContextMenuStrip을 추가합니다. 내가 TreeNode를 클릭하고 ContextMenuStrip에서 선택한 옵션은 어느 것입니까

ContextMenuStrip을

에서 옵션을 선택하고있는 기능 function_name에서 확인할 수있는 방법을
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의 sygnature

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

답변

1

당신은 TreeNodeMouseClick 이벤트를 처리 할 수 ​​복용 얻을 수 있다는 것입니다. TreeNodeMouseClickEventHandler에서 TreeNodeMouseClickEventArgs 인수에 액세스 할 수 있습니다. 이 인수는 마우스 단추가 어떤 노드에서 클릭되었는지 확인하는 데 사용할 수있는 많은 특성을 포함합니다. 예를 들어.

private TreeNode rightClickeNode; 

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

그러면 function_name에서 rightClickedNode에 액세스 할 수 있습니다.

+0

고마워, 많이 작동한다. – nirmus

1

의 서명은 무엇인가 function_name 방법?

일반적으로 보낸 사람 매개 변수의 내용을 확인할 수 있지만 TreeNode이 아닌 TreeView 일 경우 e 매개 변수의 속성을 확인할 수 있습니다.

또 다른 방법은 당신이 트 리뷰에서 마우스 아래에있는 노드를 선택해야합니다 아래 모든 마우스 function_name가 실행될 때 그래서 당신은 당신의 노드가 treeview.SelectedNode

+0

이벤트 mouseDown에서 노드를 어떻게 선택할 수 있습니까? 할 수 있으면 function_name에서 어떤 노드가 선택되었는지 확인합니다. – nirmus

+0

OnMouseDown 이벤트 처리기에서 e 매개 변수의 내용을 다시 확인합니다. –

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 
} 
+0

고마워. – nirmus

관련 문제