【发布时间】:2013-01-08 05:49:13
【问题描述】:
我有一个带有父节点的TreeView:Node0。我加了3个subnodes:
Node01
Node02
Node03
我有一个与每个子节点关联的popup menu。
我的问题:如果我直接右键单击其中一个子节点,我的弹出窗口不会显示。所以我必须先选择子节点并右键单击以显示弹出窗口。
- 如何更改代码以便直接右键单击特定子节点打开 PopupMenu?
- popupMenu 列表中只有
OpenMe菜单。单击此菜单时,应该会打开一个窗口,并且此窗口应与我单击的子菜单相关联。如何获取右键子菜单的Event并显示Form?
编辑:
看看这个
private void modifySettingsToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
String s = treeView1.SelectedNode.Text;
new chartModify(s).ShowDialog();
}
catch (Exception er)
{
System.Console.WriteLine(">>>" + er.Message);
}
}
String s = treeView1.SelectedNode.Text; 行获取选定节点的名称,而不是右键单击的节点。
所以这里我得用
private void treeview1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button == MouseButtons.Right)
MessageBox.Show(e.Node.Name);
}
我是这样修改的:
try
{
TreeNodeMouseClickEventArgs ee;
new chartModify(ee.Node.Name).ShowDialog();
}
但它不起作用:Error:Use of unassigned local variable 'ee'
编辑 #2:终于找到了解决方案
public string s;
private void modifySettingsToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
new chartModify(s).ShowDialog();
}
catch (Exception er)
{
System.Console.WriteLine(">>>" + er.Message);
}
}
然后
private void treeview1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
s = e.Node.Name;
menuStrip1.Show();
}
}
有效,
谢谢
【问题讨论】:
-
你的右键代码在哪里?
-
哪种技术?表格?网络表单? ASP.NET MVC? WPF?