PowerShell Winforms Kontextmenü

447
nixgeek

Verweisen Sie unter So fügen Sie Optionen in das Menü mit der rechten Maustaste in PowerShell-Formularen ein

$contextMenuStrip1.Items.Add("Item 1") | Out-Null $contextMenuStrip1.Items.Add("Item 2") | Out-Null 

Und es funktioniert ... Ich kann das Kontextmenü sehen ... aber wie mache ich etwas, wenn der Menüpunkt ausgewählt wurde.

Wie wenn ein Benutzer Artikel 1 auswählt, wie weiß ich, dass er ausgewählt wurde.

0
Einen Event-Handler hinzufügen. DavidPostill vor 5 Jahren 0
Das ist hilfreich für einen Anfänger / Noob wie mich. nixgeek vor 5 Jahren 0

2 Antworten auf die Frage

0
postanote

Wie die Anleitung von DavidPostill führt ... Es werden jede Menge Videos, Artikel und Beispielcode geladen, der diese Art von Schritt für Schritt durchläuft. Hier ist ein Beispiel für Ihre Frage, was DavidPostill sagt.

$textBox1.Add_Click( {  [System.Windows.Forms.MessageBox]::Show("Hello World.", "My Dialog Box") } )  $form1.ShowDialog() 

Siehe https://social.technet.microsoft.com/wiki/contents/articles/25911.how-to-add-a-powershell-gui-event-handler-part-1.aspx

Ok, ich kann dem für ein Textfeld folgen. Dasselbe gilt aber auch für das contextmenustrip1-Objekt. Wie bestimme ich also, welcher Menüpunkt ausgewählt wurde? ist es irgendwie nummeriert? würde ich etwas wie $ contextMenuStrip1.Add_Click hinzufügen? nixgeek vor 5 Jahren 0
@nixgeek Sie müssen laufen lernen, bevor Sie laufen können. Machen Sie sich mit den Grundlagen vertraut, bevor Sie versuchen, zufällige Codebits zu ändern, die Sie im Internet gefunden haben. DavidPostill vor 5 Jahren 0
Ok, ich habe herausgefunden, wie das geht ... Anstatt nur Kontextmenüs hinzuzufügen. Ich habe auch hinzugefügt, als David den Event Handler hervorgehoben hat. Ich ersetzte: $ contextMenuStrip1.Items.Add ("Item 1") | Out-Null $ contextMenuStrip1.Items.Add ("Item 2") | Out-Null Mit diesem Befehl: $ contextMenuStrip1.Items.Add ("Item1", $ ContextMenuStripItemImages) .add_Click () $ contextMenuStrip1.Items.Add ("Item2", $ ContextMenuStripItemImages). nixgeek vor 5 Jahren 0
0
nixgeek

Ok, ich habe herausgefunden, wie das geht ... Anstatt nur Kontextmenüs hinzuzufügen. Ich fügte hinzu, als David auf den Event Handler hinwies.

Ich ersetzte:

 $contextMenuStrip1.Items.Add("Item 1") | Out-Null $contextMenuStrip1.Items.Add("Item 2") | Out-Null 

Mit diesem:

 $contextMenuStrip1.Items.Add("Item1", $ContextMenuStripItemImages).add_Click({ MyCode Here }) $contextMenuStrip1.Items.Add("Item2", $ContextMenuStripItemImages).add_Click({ MyCode Here }) 

Funktioniert jetzt gut.