C # Kliknij prawym przyciskiem myszy węzły TreeView
mamTreeView
z węzłem nadrzędnym:Node0
. Dodaję 3subnodes
:
Node01
Node02
Node03
mampopup menu
który jest powiązany z każdym podwęzłem.
Mój problem: jeśli kliknę prawym przyciskiem myszy na jeden z podwęzłów, moje okienko nie zostanie wyświetlone. Muszę najpierw wybrać podwęzeł i kliknąć prawym przyciskiem myszy, aby wyświetlić wyskakujące okienko.
Jak mogę zmienić kod, aby Bezpośrednie kliknięcie prawym przyciskiem myszy na konkretnym pod-węźle otwierało menu PopupMenu?Menu popup ma tylkoOpenMe
menu na liście. Po kliknięciu tego menu okno powinno zostać otwarte, a okna te powinny zostać powiązane z podmenu, które kliknęłam. Jak uzyskać zdarzenie podmenu prawego przycisku myszy i wyświetlić za pomocą niego formularz?EDYTOWAĆ:
Spójrz na to
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);
}
}
LiniaString s = treeView1.SelectedNode.Text;
pobiera nazwę wybranego węzła, a nie węzła, który został kliknięty prawym przyciskiem myszy.
Więc tutaj muszę zmodyfikować ten fragment kodu za pomocą
private void treeview1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button == MouseButtons.Right)
MessageBox.Show(e.Node.Name);
}
Zmieniam to tak:
try
{
TreeNodeMouseClickEventArgs ee;
new chartModify(ee.Node.Name).ShowDialog();
}
ale to nie działa :Error:Use of unassigned local variable 'ee'
EDYCJA # 2: Ostatecznie dostałem rozwiązanie
public string s;
private void modifySettingsToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
new chartModify(s).ShowDialog();
}
catch (Exception er)
{
System.Console.WriteLine(">>>" + er.Message);
}
}
i wtedy
private void treeview1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
s = e.Node.Name;
menuStrip1.Show();
}
}
to działa,
Dzięki