2016-04-21 15 views
2

Ich habe toolstripdropdown in meinem Windows-Formular verwendet, um die Liste der Schaltflächen beim Klicken auf eine andere Schaltfläche anzuzeigen.C# Winfoms Toolstripdropdown schließen auf Knopfdruck

Das Bedienfeld enthält eine Liste der anzuzeigenden Schaltflächen. Um das Panel dem Benutzer zu zeigen, klicken Sie auf die Schaltfläche (Zeigen), um die folgende Zeile aufzurufen.

td.Show(pointonScreen); 

Standardmäßig ist AutoClose auf True eingestellt. Wenn der Benutzer also irgendwo in das Formular klickt, wird der Toolstripdropdown geschlossen. Das ist in Ordnung.

Meine Anforderungen:

  1. Klicken Sie auf Show-Taste
  2. Anzeige der durch td.show Toolstripdropdown() aufrufen und das Popup schließen, wenn td.Visible
  3. wieder auf die Schaltfläche Anzeigen
  4. klicken toolstripdrown geschlossen werden sollte
  5. Klicken Sie auf eine beliebige Stelle im Formular, Tooltripdropdown sollte geschlossen werden, wenn es sichtbar ist

Was jetzt passiert ist, wird in Schritt 3, bevor das Button-Klick-Ereignis ausgelöst wird, Toolstripdropdown geschlossen. Also wieder wird das Dropdown angezeigt.

Gibt es eine andere Möglichkeit, meine Anforderungen zu erfüllen?

Antwort

3

Sie sollten das Ereignis Closing des Dropdown-Menüs behandeln und ein Flag setzen, wenn das Dropdown-Menü geschlossen wird, indem Sie auf die Schaltfläche klicken, die es geöffnet hat. Dann, wenn Sie auf die Schaltfläche klicken, überprüfen Sie die Flagge und wenn es keine Flagge war, zeigen Sie Dropdown und setzen Sie die Flagge, sonst schließen Sie die Dropdown und löschen Sie die Flagge:

+0

Ausgezeichnet ... "this.button1. Bounds.Contains (this.PointToClient (MousePosition)) "Dies ist die Zeile, die ich verpasst habe. Vielen Dank .... Sie haben meinen Tag gerettet .... – Rocky

+0

Gern geschehen @Rocky. –