vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: listbox rechtsklick 
Autor: ModeratorDieter (Moderator)
Datum: 27.11.03 23:17

Das geht so:
' Benötigte API-Deklarationen
Private Declare Function SendMessage Lib "user32" Alias _
  "SendMessageA" _
  (ByVal hwnd As Long, _
  ByVal wMsg As Long, _
  ByVal wParam As Long, _
  ByVal lParam As Long) As Long
 
Private Const LB_GETTOPINDEX = &H18E
Private Const LB_GETITEMHEIGHT = &H1A1
Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y _
  As Single)
  Dim nTopIndex As Long
  Dim nItemHeight As Long
  Dim i As Long
  Dim nIndex As Long
  Dim nCount As Long
 
  If Button = vbRightButton Then
    With List1
      ' Ermitteln des ersten Index der Listbox
      nTopIndex = SendMessage(.hwnd, LB_GETTOPINDEX, 0, 0)
 
      ' Ermitteln der Item-Zeichenhöhe
      nItemHeight = SendMessage(.hwnd, _
        LB_GETITEMHEIGHT, 0, 0) * Screen.TwipsPerPixelY
 
      ' Anzahl sichtbarer Einträge
      nCount = .Height / nItemHeight
      If .Height Mod nItemHeight <> 0 Then nCount = nCount + 1
 
      ' Ermitteln des Index, über dem der Mauspfeil steht
      nIndex = nTopIndex - 1
      For i = 0 To List1.Height Step nItemHeight
        If i > Y Then Exit For
        nIndex = nIndex + 1
      Next
 
      If nIndex >= 0 And nIndex < .ListCount Then
        ' Eintrag selektieren
        .ListIndex = nIndex
      End If
    End With
  End If
End Sub

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
listbox rechtsklick741dev!l27.11.03 21:44
Re: listbox rechtsklick441ModeratorDieter27.11.03 23:17

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel