Index: Core/Common/src/Core.Common.Controls.TreeView/TreeViewController.cs =================================================================== diff -u -rb6d165f6edddc4271e94c5f6d70c12d4ba0c60eb -r551e42ecaee2cd68539e91473312161264442b4c --- Core/Common/src/Core.Common.Controls.TreeView/TreeViewController.cs (.../TreeViewController.cs) (revision b6d165f6edddc4271e94c5f6d70c12d4ba0c60eb) +++ Core/Common/src/Core.Common.Controls.TreeView/TreeViewController.cs (.../TreeViewController.cs) (revision 551e42ecaee2cd68539e91473312161264442b4c) @@ -458,15 +458,20 @@ return; } - treeView.SelectedNode = clickedNode; - var treeNodeInfo = GetTreeNodeInfoForData(clickedNode.Tag); - // Update the context menu - clickedNode.ContextMenuStrip = treeNodeInfo.ContextMenuStrip != null - ? treeNodeInfo.ContextMenuStrip(clickedNode.Tag, clickedNode, treeNodeInfo) - : null; + if ((e.Button & MouseButtons.Right) != 0) + { + treeView.SelectedNode = clickedNode; + // Update the context menu + clickedNode.ContextMenuStrip = treeNodeInfo.ContextMenuStrip != null + ? treeNodeInfo.ContextMenuStrip(clickedNode.Tag, clickedNode, treeNodeInfo) + : null; + + return; + } + if (treeNodeInfo.CanCheck != null && treeNodeInfo.CanCheck(clickedNode.Tag) && clickedNode.IsOnCheckBox(point)) { clickedNode.Checked = !clickedNode.Checked;