//道理讲了也没用,测试的结果已经如此
//如果要支持右键选中可以参考如下代码:private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button == MouseButtons.Right)
((TreeView)sender).SelectedNode = e.Node;
}
//如果要支持右键选中可以参考如下代码:private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button == MouseButtons.Right)
((TreeView)sender).SelectedNode = e.Node;
}
{
TreeNode tn = this.TreeView.GetNodeAt(e.X,e.Y);//得到选中的的 node
if(tn==null)
{
}
else if( tn.Bounds.Contains( e.X, e.Y ) )
{
}
else
{
tn=null;
}
TreeView.SelectedNode = tn;
}
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 最新版本:20070212http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
bool rightClickNode = false;
private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{
e.Cancel = !rightClickNode;
rightClickNode = false;
}private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
((TreeView)sender).SelectedNode = e.Node;
rightClickNode = true;
}
}
{
//bEditPopup.Displayed = false;
//bEditPopup.PopupMenu(Control.MousePosition); itemMenu.E.Displayed = false;
itemMenu.E.PopupMenu(Control.MousePosition); if (this.CarTree.SelectedNode != null)
{
NewTreeNode tn = (NewTreeNode)this.CarTree.SelectedNode;
//车辆或分组选中时菜单有效
itemMenu.EmuMod.Enabled = ((tn.Flg == (byte)CarSysText.NodeFlag.GupFlg) || (tn.Flg == (byte)CarSysText.NodeFlag.CarFlg));
itemMenu.EmuDel.Enabled = ((tn.Flg == (byte)CarSysText.NodeFlag.GupFlg) || (tn.Flg == (byte)CarSysText.NodeFlag.CarFlg));
itemMenu.EmuGroup.Enabled = ((Car.ShType) || ((!Car.ShType) && (tn.Flg != (byte)CarSysText.NodeFlag.CarFlg)));
}
}