Announcement

Collapse
No announcement yet.

ContextMenuStrip warten lassen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ContextMenuStrip warten lassen

    Hallo,

    dies ist meine erste Frage hier...

    Ich erstelle ein einfaches Kontextmenü mit:

    Code:
    Private Sub PopupShow()
            Dim pop As New ContextMenuStrip
            AddHandler pop.ItemClicked, AddressOf ContextMenuStrip_ItemClicked
            For i As Integer = 0 To sCamAnis.Count - 1
                Dim it As New ToolStripMenuItem
                it.Text = sCamAnis(i).name
                it.Tag = i
                pop.Items.Add(it)
            Next
            ' ContextMenü an der aktuellen Mausposition anzeigen
            pop.Show(Cursor.Position)
        End Sub
    
        Private Sub ContextMenuStrip_ItemClicked(ByVal sender As Object, _
                    ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs)
            Debug.Print(e.ClickedItem.ToString)
        End Sub
    Das Kontextmenü wird angezeigt, ich kann ein Item auswählen und bekomme es in ContextMenuStrip_ItemClicked auch sauber angezeigt.
    Soweit so gut.
    Das Problem ist, daß das Kontextmenü nicht modal angezeigt wird. D.h. mein Programm läuft weiter, ich kann beliebige andere Steuerelemente und Menüs anwählen während das Kontextmenü sichtbar bleibt. Es wird erst geschlossen, wenn ich tatsächlich ein Item anklicke.
    Normalerweise sollte das Menü modal angezeigt sein und die Escape-Taste oder ein Mausklick außerhalb des Kontextmenüs sollte dieses abbrechen und schliessen.

    Wie kann ich denn dieses Verhalten erreichen?

    Viele Grüße
    Tom
Working...
X