Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0109: Popup-Menüs allgemein und über Textfeldern im speziellen

 von 

Beschreibung 

Popup-Menüs lassen sich recht einfach und schnell erstellen. Ein entsprechendes Menü ist unter 'Extras/Menü Editor' anzulegen und bei Bedarf unsichtbar zu halten. TextBox und RTF-Box bilden eine Besonderheit, da sie schon ein eigenes Kontextmenü mitbringen. Durch einen kleinen Trick mit dem Focus kann dieses unterdrückt und an dessen Stelle ein eigenes eingeblendet werden.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

keine

Download:

Download des Beispielprojektes [2,78 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Kontrollkästchen-Steuerelement "Check1"
' Steuerelement: Textfeld "Text1"
' Steuerelement: Bildfeld-Steuerelement "Picture1"
' Steuerelement: Menü "mnuTextBox"
' Steuerelement: Menü "mnuTXTwrite" auf mnuTextBox
' Steuerelement: Menü "mnuTXTclear" auf mnuTextBox
' Steuerelement: Menü "mnuPictureBox"
' Steuerelement: Menü "mnuPICRaster" auf mnuPictureBox
' Steuerelement: Menü "mnuPicCLear" auf mnuPictureBox

Option Explicit

Private Sub Text1_MouseDown(Button As Integer, Shift As _
                            Integer, X As Single, Y As _
                            Single)
                            
  If Button = 2 Then
    Text1.Enabled = False
    Text1.Enabled = True
    Text1.SetFocus
    PopupMenu mnuTextBox
  End If
End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As _
                               Integer, X As Single, Y As _
                               Single)
  If Button = 2 Then Me.PopupMenu mnuPictureBox
End Sub

Private Sub mnuTXTclear_Click()
  Text1.Text = ""
End Sub

Private Sub mnuTXTwrite_Click()
  Dim X%
    For X = 1 To 5
      Text1.Text = Text1.Text & "Hallo "
    Next X
End Sub

Private Sub mnuPicCLear_Click()
  Picture1.Cls
End Sub

Private Sub mnuPICRaster_Click()
  Dim Y&, X&
    For Y = 0 To Picture1.Height Step 10 * Screen.TwipsPerPixelY
      Picture1.Line (0, Y)-(Picture1.Width, Y), 0
    Next Y
    
    For X = 0 To Picture1.Width Step 10 * Screen.TwipsPerPixelX
      Picture1.Line (X, 0)-(X, Picture1.Height), 0
    Next X
End Sub

Private Sub Check1_Click()
  If Check1.Value = vbChecked Then
    mnuTextBox.Visible = True
    mnuPictureBox.Visible = True
  Else
    mnuTextBox.Visible = False
    mnuPictureBox.Visible = False
  End If
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 5 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von H. Schellin am 24.10.2003 um 18:06

Tolle Seite, besonders für mich als Anfänger mit VB6.
Persönlich suche ich eine Möglichkeit, für eine paswortanmeldung (Nutzer, Passwort) mittels einer Tabelle(user_id,name,pw,pw_time(timestamp)) und verschiedene Möglichkeiten, um Informationen in einer Statusbar auszugeben, wie z.B. Gesamtanzahl der Datensätze einer Tabelle, Laufwerk und Pfad der Datenbank, angemeldeter Nutzer usw.

Weiter so ! HS

Kommentar von Christian am 29.09.2003 um 22:56

Ich habe es noch nicht ausprobiert,
aber der folgende Artikel dazu scheint auch interessant zu sein:

http://www.aboutvb.de/khw/artikel/khwuserpopupmenu.htm

Kommentar von Dornii am 24.04.2003 um 11:48

Kann man für ein einfaches Pop-up Menü ein Handle auslesen?

Kommentar von CHRTEK-Network am 12.07.2002 um 08:59

Klar geht das. Nur woführ??
** Alle die irgendwelche Ratschläge haben was WIRKLICH im Windows fehlt melden sich bitte bei mir, vielen dank! **

Kommentar von Hanno Pinther am 15.02.2001 um 19:30

zu tip 109:
Ist es möglich, eine während der Laufzeit erstellte Textbox mit dem Befehl "MouseDown" zu belegen????