2012-03-06 1 views
3

私はそれぞれの子ノードにツリービューノードでClickイベントを見つける場所

をクリックしてイベントを見つける方法は、ここでサンプル画像 enter image description here

がここにアイブ氏はこれまでに試した何だ見つけるカントツリービュー に問題を抱えています。

Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect 
    If TreeView1.SelectedNode.Level = 0 Then 
     MsgBox("1") 
    ElseIf TreeView1.SelectedNode.Level = 1 Then 
     MsgBox("2") 
    ElseIf TreeView1.SelectedNode.Level = 2 Then 
     MsgBox("3") 
    ElseIf TreeView1.SelectedNode.Level = 3 Then 
     MsgBox("4") 
    ElseIf TreeView1.SelectedNode.Level = 4 Then 
     MsgBox("5") 
    End If 
End Sub 

問題は、メッセージボックスが常にそれが2

+0

レベルは常に1ですか?私はTreeViewsで作業している間私自身の関数を作っていた...あなたはちょうどクリックした子供のレベルを返す関数を作ることができますが、この "基本的な"関数doesntはあなたのケースで動作するように見える奇妙な – squelos

+0

どちらが完全に正常ですLevelプロパティはTreeViewの現在のノードの深さを取得するためです。 2つの親ノードのいずれかを選択すると、MessageBoxに「1」が表示されます。それでは、達成したいことと現時点ではうまくいかないことについてさらに説明してください。 – Abbas

+0

'if(selectedNode.Parent!= null)'その子ノード – Reniuz

答えて

5

あなたが使用しているイベントが良いイベントですだと言うすべての子ノードです。新しい選択したノードを取得する場合は、イベントハンドラ(パラメータe)でEventArgsオブジェクトを使用します。次のコードはC#ではVB.Netではありませんが、実際には単純です:

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) 
{ 
    // Use the e parameter to get the new selected node 
    MessageBox.Show(e.Node.Text); 
} 
関連する問題