VB-Homepage Tipp 135

Listboxeinträge mit der rechten Maustaste markieren

Warum wollen Sie denn die Listboxeinträge mit der linken Maustaste anklicken?
Spaß beiseite, ist doch vollkommen egal, warum Sie das wollen - fakt ist, es geht. Allerdings ist der Aufwand schon einiges und da ich bisher nicht dem Zwang unterzogen war, dies realisieren zu müssen, könnte ich Ihnen auch nicht sagen, wie das gehen soll.

Aber es gibt ja eine ganze Menge anderer, die sich in Richtung VB engagieren.
Und so ist dies ein Tipp, den ich auf den Internetseiten von Andreas Terlinden gefunden habe. Spot ab.

Vielleicht noch ein Wort zur Funktion.
Um das Anklicken mit der rechten Maustaste zu realisieren, muß zuerst ermittelt werden, wie hoch jeder Eintrag in der Listbox ist, dann wird mit dieser Angabe ermittelt, welchen Punkt der User angeklickt hat und daraufhin wird der entsprechende ListIndex Eintrag aktiv gesetzt.

Und hier nun das Projekt - für 16Bit

listbox3.mak
LISTBOX3.FRM
ProjWinSize=152,402,248,215
ProjWinShow=2
Title="LISTBOX3"
ExeName="LISTBOX3.EXE"

listbox3.frm
VERSION 2.00
Begin Form Form1
Caption = "Form1"
ClientHeight = 3450
ClientLeft = 2100
ClientTop = 2070
ClientWidth = 7365
Height = 3855
Left = 2040
LinkTopic = "Form1"
ScaleHeight = 3450
ScaleWidth = 7365
Top = 1725
Width = 7485
Begin ListBox List1
Height = 2175
Left = 120
TabIndex = 0
Top = 480
Width = 7095
End
Begin Label Label2
Caption = "Gefunden bei : Andreas Terlinden (http://.....)"
Height = 255
Left = 120
TabIndex = 2
Top = 3000
Width = 6855
End
Begin Label Label1
Alignment = 2 'Center
Caption = "Listboxeinträge mit der rechten Maustaste auswählen"
FontBold = -1 'True
FontItalic = 0 'False
FontName = "MS Sans Serif"
FontSize = 9.75
FontStrikethru = 0 'False
FontUnderline = 0 'False
Height = 315
Left = 120
TabIndex = 1
Top = 120
Width = 7170
End
End
Option Explicit
Dim list1_itemheight As Long
Sub Form_Load ()
Dim zwspFont1, zwspFont2, zwspFont3
zwspFont1 = Me.FontName ' Font zwischenspeichern
zwspFont2 = Me.FontSize
zwspFont3 = Me.FontBold
Me.FontName = List1.FontName
Me.FontSize = List1.FontSize
Me.FontBold = List1.FontBold
list1_itemheight = Me.TextHeight("X,")
Me.FontName = zwspFont1 ' Font wiederherstellen
Me.FontSize = zwspFont2
Me.FontBold = zwspFont3
List1.AddItem "Das ist der Eintrag Nummer01"
List1.AddItem "Das ist der Eintrag Nummer02"
List1.AddItem "Das ist der Eintrag Nummer03"
List1.AddItem "Das ist der Eintrag Nummer04"
List1.AddItem "Das ist der Eintrag Nummer05"
List1.AddItem "Das ist der Eintrag Nummer06"
List1.AddItem "Das ist der Eintrag Nummer07"
List1.AddItem "Das ist der Eintrag Nummer08"
List1.AddItem "Das ist der Eintrag Nummer09"
List1.AddItem "Das ist der Eintrag Nummer10"
List1.AddItem "Das ist der Eintrag Nummer11"
List1.AddItem "Das ist der Eintrag Nummer12"
List1.AddItem "Das ist der Eintrag Nummer13"
List1.AddItem "Das ist der Eintrag Nummer14"
List1.AddItem "Das ist der Eintrag Nummer15"
List1.AddItem "Das ist der Eintrag Nummer16"
List1.AddItem "Das ist der Eintrag Nummer17"
End Sub
Sub List1_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim idx As Long
If Button = 2 Then ' rechter Mousebutton
idx = List1.TopIndex + Int(Y / list1_itemheight)
List1.ListIndex = idx
End If
End Sub

Und hier nun das Projekt - für 32Bit

listbox4.vbp
Form=listbox4.frm
ProjWinSize=152,402,248,215
ProjWinShow=2
IconForm="Form1"
Title="listbox4"
ExeName32="listbox4.exe"
Name="Projekt1"
HelpContextID="0"
StartMode=0
VersionCompatible32="0"
MajorVer=1
MinorVer=0
RevisionVer=0
AutoIncrementVer=0
ServerSupportFiles=0

listbox4.frm
VERSION 4.00
Begin VB.Form Form1
Caption = "VB-Homepage Tipp"
ClientHeight = 3120
ClientLeft = 1875
ClientTop = 2310
ClientWidth = 7305
Height = 3525
Left = 1815
LinkTopic = "Form1"
ScaleHeight = 3120
ScaleWidth = 7305
Top = 1965
Width = 7425
Begin VB.ListBox List1
Height = 2010
Left = 240
TabIndex = 0
Top = 480
Width = 6855
End
Begin VB.Label Label2
Caption = "Gefunden bei : Andreas Terlinden (http://.....)"
Height = 255
Left = 240
TabIndex = 2
Top = 2760
Width = 6855
End
Begin VB.Label Label1
Alignment = 2 'Center
Caption = "Listboxeinträge mit der rechten Maustaste auswählen"
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "MS Sans Serif"
Size = 12
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 240
TabIndex = 1
Top = 120
Width = 6855
End
End
Attribute VB_Name = "Form1"
Attribute VB_Creatable = False
Attribute VB_Exposed = False
Option Explicit
Dim list1_itemheight As Long
Private Sub Form_Load()
Dim zwspFont As Font
Set zwspFont = Me.Font ' Font zwischenspeichern
Set Me.Font = List1.Font
list1_itemheight = Me.TextHeight("X,")
Set Me.Font = zwspFont ' Font wiederherstellen
Set zwspFont = Nothing
List1.AddItem "Das ist der Eintrag Nummer01"
List1.AddItem "Das ist der Eintrag Nummer02"
List1.AddItem "Das ist der Eintrag Nummer03"
List1.AddItem "Das ist der Eintrag Nummer04"
List1.AddItem "Das ist der Eintrag Nummer05"
List1.AddItem "Das ist der Eintrag Nummer06"
List1.AddItem "Das ist der Eintrag Nummer07"
List1.AddItem "Das ist der Eintrag Nummer08"
List1.AddItem "Das ist der Eintrag Nummer09"
List1.AddItem "Das ist der Eintrag Nummer10"
List1.AddItem "Das ist der Eintrag Nummer11"
List1.AddItem "Das ist der Eintrag Nummer12"
List1.AddItem "Das ist der Eintrag Nummer13"
List1.AddItem "Das ist der Eintrag Nummer14"
List1.AddItem "Das ist der Eintrag Nummer15"
List1.AddItem "Das ist der Eintrag Nummer16"
List1.AddItem "Das ist der Eintrag Nummer17"
End Sub
Private Sub List1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim idx As Long
' Y ist die Position in Twips vom oberen Rand der Listbox !
' Button =Information, welche Mousetaste(n) gedrückt wurde(n)
If Button = 2 Then ' rechter Mousebutton
idx = List1.TopIndex + Int(Y / list1_itemheight)
List1.ListIndex = idx
End If
End Sub

Um den Code zu nutzen, erstellen Sie sich mit einem Editor (z.Bsp. Notepad) Dateien die Sie wie angegeben benennen und kopieren Sie den Code hinein. Speichern Sie Ihre Datei ab und öffnen Sie das Projekt entweder direkt aus einem Dateimanager oder öffnen Sie Ihre VB Software und laden sich das Projekt.

Tipp-Download

Quelle : Andreas Terlinden

Zurück zur Übersichtsseite