TreeView
親ノードを持つがあります: Node0
。私は3を追加しsubnodes
ます:
Node01
Node02
Node03
popup menu
各サブノードに関連付けられているがあります。
私の問題:サブノードの1つを直接右クリックすると、ポップアップが表示されません。したがって、最初にサブノードを選択し、右クリックしてポップアップを表示する必要があります。
- 特定のサブノードを直接右クリックしてPopupMenuを開くようにコードを変更するにはどうすればよいですか?
- popupMenu
OpenMe
には、リスト内のメニューのみがあります。このメニューをクリックすると、ウィンドウが開くはずであり、このウィンドウは、クリックしたサブメニューに関連付けられている必要があります。右クリックサブメニューのイベントを取得してフォームを表示するにはどうすればよいですか?
編集:
これを見てください
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();
}
}
それは動作します、
ありがとう