ContextMenu für einzelne Node (TreeView)

Christian Kusmanow

Erfahrenes Mitglied
Hallo FIAE's!

Wie könnte ich ganz einfach festlegen das mein ContextMenu nur bei bestimmten Nodes
angezeigt wird, wenn ich mit der rechten Maustaste draufklicke?

Ich hab es schon hingekriegt wenn ich die Nodes vorher mit Links anklicke. Das bringt mir aber nichts, weil es auch angezeigt wird, wenn es nicht so sein soll.

Das Problem ist das wenn ich mit Rechts klicke, die Node zwar Markiert ist solange ich denn MouseButton gedrückt halte, aber das TreeView.SelectedItem immer noch das gleiche ist das ich vorher mit Links angeklickt habe. Nachdem ich Maustaste wieder loslasse wird die zuvor ausgewählte Node wieder markiert.
Irgendwie unlogisch für mich. Sollte doch eigentlich das gleiche passieren wie wenn ich mit Links klicke, oder?

Hat jemand eine Idee?

MFG cosmo
 
Welchen Event benutzt du denn?
Wenn du es so gemacht hast wie im verlinkten Thread dann wirst du auf jeden Fall debuggen koennen. Bei mir gehts zumindest.
Was passiert denn genaues in der SetContextForProfile() Methode?
Du koenntest ja mal 'node.Text' in deinem Kontextmenue erscheinen lassen um zu sehen auf welchem Node du dich gerade befindest.
 
OnMouseDown:
Code:
if ( e.Button == MouseButtons.Right ){
	TreeNode node = tvwProfil.GetNodeAt(p);
	if ( node != null ){
		if ( SetContextForProfile( node ) ){
			tvwProfil.SelectedNode = node;
			ctmProfile.MenuItems[0].Text =
				string.Format("\"{0}\" Löschen?",node.Text);
			ctmProfile.Show( tvwProfil, p );
		}
	}
}
Code:
private bool SetContextForProfile( TreeNode node ){
	if ( node.Parent != null )
		if ( node.Parent.Text == GermanLang.Deutsch.ToString()
		  || node.Parent.Text == GermanLang.Englisch.ToString()
		  || node.Parent.Text == "Hochgeladene Elemente"){
			return true;
		}
	return false;
}
 
Zuletzt bearbeitet:
Ich habe den Fehler gefunden. Ich hatte das ContextMenu schon an den Treeview gebunden bavor ich ContextMenu.Show() aufgerufen hatte.
Habe meine Code dementsprechend oben korrigiert.

Danke Dir erhardt!

MFG cosmo
 

Neue Beiträge

Zurück