ListView右击菜单问题

Mo_DeNo 2014-07-22 11:17:36
winform做的小程序,在程序载入的时候,会读取数据库的数据来创建根节点和子节点。设计时,为treeview添加了NodeMouseClick事件,并判断是右击时,显示ContextMemuScript。在右击菜单中有个添加节点的功能。以上说的功能都能实现。但是如果我用右击菜单中的添加节点来添加一个根节点,这时候右击这个节点,菜单是不会显示的,但是debug的话,能跑到NodeMouseClick事件里。感觉很是困惑。

这个是右击事件
private void tvTable_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
cmsNodeRightMemu = new ContextMenuStrip();

// Point ptMemuPosition =PointToScreen( new Point(e.Node.Bounds.X + e.Node.Bounds.Width, e.Node.Bounds.Y ));

cmsNodeRightMemu.TopLevel = true;
cmsNodeRightMemu.Show(tvTable,e.X,e.Y);
}
}


这个是添加节点事件
private void bbbbToolStripMenuItem_Click(object sender, EventArgs e)
{
bool hasSameNode = false;

string strRootNodeName = string.Empty, strSelectNode = string.Empty;
int intSelectNodeLevel = -1;

intSelectNodeLevel = tvTable.SelectedNode.Level;

strSelectNode = intSelectNodeLevel == 0 ? "Root" : "Sub";

strRootNodeName = Interaction.InputBox("Please Input " + strSelectNode + " Node", "Add", "New", -1, -1);
hasSameNode = ExistsSameNodeInSameLevel(strRootNodeName, intSelectNodeLevel, tvTable.SelectedNode.Parent);

while (hasSameNode)
{
MessageBox.Show("Has Same Node");

strRootNodeName = Interaction.InputBox("Please Input " + strSelectNode + " Node", "Add", "New", -1, -1);
hasSameNode = ExistsSameNodeInSameLevel(strRootNodeName, intSelectNodeLevel, tvTable.SelectedNode.Parent);
}

TreeNode trAddedNode, trSubNode;

if (intSelectNodeLevel == 0)
{
trSubNode = new TreeNode("NewChildNode");
trSubNode.Tag = intAddNodeMaster;
trSubNode.Name = "NewChildNode";
trSubNode.ContextMenuStrip = cmsNodeRightMemu;

trAddedNode = new TreeNode(strRootNodeName, new TreeNode[] {trSubNode });
trAddedNode.Name = strRootNodeName;
trAddedNode.ContextMenuStrip = cmsNodeRightMemu;

tvTable.Nodes.Add(trAddedNode);
}
else
{
trAddedNode = new TreeNode(strRootNodeName);
trAddedNode.Tag = intAddNodeMaster;
trAddedNode.Name = strRootNodeName;
trAddedNode.ContextMenuStrip = cmsNodeRightMemu;
tvTable.SelectedNode.Nodes.Add(trAddedNode);
}
}
...全文
100 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mo_DeNo 2014-07-23
  • 打赏
  • 举报
回复
好吧,我自己搞定了,一开始的时候不要new就行了

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧