我有一个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();
}
}
它有效,
谢谢