2016-07-18 6 views
1

ユーザーがツリービュー(右または左)をクリックしてカーソルがノード上にない場合、選択したノードを何も設定しません。私は、コントロールのいずれかの部分がクリックされた場合、TreeView.MouseClickイベントが発生すると思ったが、ノードがクリックされたときだけ起動するように見える。これを行う方法はありますか?ノードビューがクリックされていないときにクリックと.MouseClickイベントが発生しない

編集*選択したノードに何も設定しないでください。tvwMain.SelectedNode = Nothingですが、コントロールがクリックされ、TreeView.MouseClickおよびTreeView.Clickイベントが発生していないため、その時点でノードが存在しない場合は実行できません。ノードがクリックされない限り起動しないようです。

Private Sub tvwMain_NodeMouseClick(sender As Object, e As MouseEventArgs) Handles tvwMain.Click 
    Dim p = New Point(e.X, e.Y) 
    Dim node As TreeNode = tvwMain.GetNodeAt(p) 

    If node IsNot Nothing Then 
     tvwMain.SelectedNode = node 
     MsgBox("HERE") 
    Else 
     tvwMain.SelectedNode = Nothing 
     MsgBox("TOO") 
    End If 
End Sub 
+0

Winformsの、WPFやASP.Net? –

+0

[TreeViewで選択したノードの選択をクリアするにはどうすればいいですか?](http://stackoverflow.com/questions/11824443/how-do-i-clear-the-selection-of-a-selected -node-in-a-treeview) –

+0

選択したノードに何も設定することはできません。 'tvwMain.SelectedNode = Nothing'ですが、ユーザーがコントロールをクリックしたときにそのノードをクリックするとします。また、WinForms – Alex

答えて

1
TreeNode test = tvwMain.GetNodeAt(tvwMain.PointToClient(Cursor.Position)) 
If IsNothing(test) Then tvwMain.SelectedNode = Nothing 
+0

私はこれに似た方法を持っていました(上記の追加)しかし、イベントが発射されていないという同じ問題がありました。 – Alex

+1

カーソルがノード上になければ.Click、.MouseClick、NodeMouseClickイベントが発生しない場合、 MouseDownやHoverのようなイベント:https://msdn.microsoft.com/en-us/library/system.windows.forms.treeview_events(v=vs.110).aspx –

+0

マウスが上を向いているようです。 – Alex

関連する問題