Popup-Menü bei Linksklick anzeigen

proprogger

Mitglied
Hallo!

Man kann ja eimem Control ein Popupmenü zuordnen, das dann bei einem Rechtsklick angezeigt wird.
Kann man das auch bei einem Linksklick anzeigen lassen?

Muss dann wohl über das mouseDown-Event laufen.
Wie lasse ich das Popup-Menü an x/y-Koordinaten anzeigen?

MfG,
proprogger
 
Die Komponente nennt sich ContextMenu.

Diese kann entweder auf eine Form gezogen werden, sie wird dynamisch via Code erzeugt:
Code:
 System.Windows.Forms.ContextMenu contextMenu1;
contextMenu1 = new System.Windows.Forms.ContextMenu();
System.Windows.Forms.MenuItem menuItem1;
menuItem1 = new System.Windows.Forms.MenuItem();
System.Windows.Forms.MenuItem menuItem2;
menuItem2 = new System.Windows.Forms.MenuItem();
System.Windows.Forms.MenuItem menuItem3;
menuItem3 = new System.Windows.Forms.MenuItem();

contextMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {menuItem1, menuItem2, menuItem3});
menuItem1.Index = 0;
menuItem1.Text = "MenuItem1";
menuItem2.Index = 1;
menuItem2.Text = "MenuItem2";
menuItem3.Index = 2;
menuItem3.Text = "MenuItem3";

textBox1.ContextMenu = contextMenu1;
Wird das ContextMenu einem anderen Control zugewiesen, reagiert dieses dann auf den rechten MausClick. Will man das nicht, dann einfach die letzte Zeile im obigen Code weglassen und einfach im Click-Event der TextBox (kann natürlich auch ein anderes Control sein) ein
Code:
contextMenu1.Show();
einfügen.

Auf jeden Fall empfiehlt es sich, die ContextMenu-Klasse in der MSDN genauer anzusehen.
 
Ah ja okay...
bei Show() wird es an die Mausposition gezeichnet, oder?
Ich dachte dass das nicht so einfach geht sondern dass man dann noch die Mausposition angeben muss und da die bei den EventArgs nicht in Bildschirmkoordinaten sondern relativ zum Objekt-Ursprung sind, müsste man die dann erst umrechnen...
Aber wenn das so einfach geht ;-)
 
Hallo,

Ich habe hierzu noch einmal eine Frage, bzw ein Problem.

Der Aufruf von "contextMenu1.Show()" arbeitet nämlich nicht modal und hält die Weiterverarbeitung der Prozedur an. Genau das möchte ich aber.

Ich möchte bei einem Linksklick auf eine TreeNode abfragen, ob die Action "nur für diesen Konten" oder auch für "Alle Childs" ist.

Die Prozedure läuft jedoch voll durch und wartet nicht auf den Klick auf das Menü.

Gruß Mario
 
Dazu müsstest du deinen Source posten, da ich nicht weiß was genau du da machst und was das Durchlaufen einer Funktion mit dem Click auf ein Item zu tun hat ...
 
Zurück