[VisualBasic] Parent eines Popup-Menüs setzen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Gibbon, 22. Januar 2008 .

Schlagworte:
  1. 22. Januar 2008
    Parent eines Popup-Menüs setzen

    Ich habe ein paar Listboxen und ein Menü, das ich als Popup-Menü verwende.

    So rufe ich das Popup-Menü bei Rechtsklick auf eine der Listboxen auf:

    Code:
    Private Sub List1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
     If Button = 2 Then PopupMenu mnuMenu
    End Sub
    Das gleiche steht in List2_MouseUp und in den anderen MouseUps der Listboxen.

    Nun steht im Popup-Menü z. B. "Bearbeiten", womit ich den Eintrag in der Listbox ändern will, auf die der Rechtsklick stattgefunden hat.

    Das Problem ist, dass in mnuMenu.Parent der Name meiner Form steht und nicht der Name der Listbox, aus der heraus das Menü aufgerufen wurde.

    Ich könnte natürlich den Namen der Listbox, aus der das Menü aufgerufen wurde, in eine Variable schreiben, aber das ist nicht die eleganteste Lösung

    Deswegen meine Frage: Wie finde ich raus, auf welche Listbox ein Rechtsklick stattgefunden hat und somit das Menü aufgerufen wurde?
     
  2. 22. Januar 2008
    AW: Parent eines Popup-Menüs setzen

    Hm ich weiss nicht was du für ein Problem mit dieser "uneleganten" Lösung hast.... Ich würde ein ListBox Array machen und dann eben immer auf den entsprechenden Index verweisen.

    Gruß,
    Figger
     
  3. 22. Januar 2008
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: Parent eines Popup-Menüs setzen

    Versuch mal diese Klasse. Weiß leider jetzt nicht mehr wo ich die herhab...
    Der einzige Nachteil ist, dass man keine Untermenüs machen kann...

    Hier mal ein Bsp-Code
    Code:
    Private Sub Text_Click(ByRef Index As Integer)
    Dim MyPop As New PopupCreator
    MyPop.OwnerHwnd = Me.HWnd
    'AddMenu fügt ein neuen Menüpunkt hinzu. 1. Parameter: Name, 2.: Endabled, 3.: Checked, 4.: Bei True ein Separator anstatt, Menüpunkt
    MyPop.AddMenu "Alles wählen", True, False, False
    MyPop.AddMenu "Auswahl kopieren", False, False, False
    '....
    
    'Popup-Menü anzeigen
    MyPop.OpenPopup
    
    'Auswertung:
    'Seperatoren werden auch gezählt.
    Select Case MyPop.SelectedItem
     Case 1
     Text(Index).SelStart = 0
     Text(Index).SelLength = Len(Text(Index).Text)
     Case 2
     Clipboard.Clear
     Clipboard.SetText Text(Index).SelText
    End Select
    End Sub
    
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.