|
| |

VB.NET - Ein- und Umsteiger| Re: ListView, Eintrag markieren und im sichtbaren Bereich oben anzeigen... | |  | | Autor: Heinz-Josef Bomanns | | Datum: 04.06.10 08:07 |
| Hallo Maas,
das führt zum gleichen Ergebnis, der markierte Eintrag wird immer unten im LV angezeigt, scheint ein Glitsch von 'EnsureVisible' zu sein. Hab 'ne alte VB6-Lösung rausgekramt und angepasst, damit geht's jetzt:
Private Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" ( _
ByVal hWnd As IntPtr, _
ByVal wMsg As Integer, _
ByVal wParam As Integer, _
ByVal lParam As Integer) As Integer
Private Const LVM_FIRST = &H1000
Private Const LVM_GETTOPINDEX = (LVM_FIRST + 39)
Public Function LVGetTopIndex(ByVal hWndLV As IntPtr) As Integer
LVGetTopIndex = SendMessage(hWndLV, _
LVM_GETTOPINDEX, _
0&, _
0&)
End Function 'LVGetTopIndex
Public Function LVSetTopIndex(ByVal lv As ListView, ByVal TopIndex As _
Integer) As Integer
Dim lvCurrTopIndex, lvCurrIndex As Integer
Dim Diff, NewIndex As Integer
On Error Resume Next
LVSetTopIndex = -1 'Flag: Nix geändert
lvCurrTopIndex = LVGetTopIndex(lv.Handle) 'Index 1. Eintrag im sichtbaren
' Bereich
lvCurrIndex = lv.SelectedItems(0).Index 'Index des markierten Eintrages
Diff = TopIndex - lvCurrTopIndex 'Differenz zwischen 1. und aktuellem
' Eintrag
NewIndex = lvCurrIndex + Diff 'Index des Eintrages der ins Bild geholt
' werden muss
If NewIndex < lv.Items.Count - 1 Then 'Hamwer überhaupt soviele?
lv.Items(NewIndex).EnsureVisible() 'Jo, reinschieben
LVSetTopIndex = NewIndex 'Index 1. Eintrag im sichtbaren Bereich
End If
End Function 'LVSetTopIndex Aufruf dann einfach z.B. so:
ListView.Items(x).Selected = True
ListView.SelectedItems(0).EnsureVisible
LVSetTopIndex ListView, x
_________________________________________
ATH, Bomi
|  |
 | 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 |
  |
|
sevWizard für VB5/6 
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere InfosTipp des Monats Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
| |
|
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
|
|