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: ListView1; Autoscroll wie? 
Autor: ModeratorDieter (Moderator)
Datum: 07.12.01 09:39

Hallo Lutz,

um einen Eintrag im ListViwe per Code zu markieren, muss die SelectedItem-Eigenschaft auf den entsprechende ListView-Eintrag gesetzt werden. Danach noch EnsureVisible, so dass der Eintrag auch in den sichtbaren Bereich gelangt:
With ListView1
  For Index = 1 To MaxAnzahl
    Set itemX = .ListItems.Add(, , DatIndex(Index))
    itemX.SubItems(1) = DatumFällig(Index)
    ...
    <font color=green>' Sicherstellen, dass Eintrag selektiert und sofort 
    ' sichtbar ist</font>
    Set .SelectedItem = itemX
    .SelectedItem.EnsureVisible
  Next
End With
Das mit dem Mittig-Setzen ist schon schwieriger, da man ja nicht weiss, wieviele Zeilen maximal im sichtbaren Bereich angezeigt werden können. Wenn man das wüsste, und die Anzahl der Zeilen z.B. in der Variablen MaxVisible stünde, dann würde der Code ungefähr so aussehen:
For Index = 1 To MaxAnzahl Step 1
  If DatumFällig(Index) = Date(Now, "mm") Then
    <font color=green>' setze die Zeile in die Mitte der ListView1 und markiere 
    ' sie</font>
    SetItemCenter Index
    Exit For
  End If
Next
 
<font color=green>' und hier die Hilfsprozedur</font>
Private Sub SetItemCenter(ByVal Index As Integer)
  Dim botIndex As Integer
  Dim topIndex As Integer
 
  topIndex = Index - Int((MaxVisible - 1) / 2)
  botIndex = Index + Int((MaxVisible - 1) / 2) - 1
 
  If topIndex < 1 Then topIndex = 1
  If botIndex > MaxAnzahl Then botIndex = MaxAnzahl
 
  With ListView1
    <font color=green>' zunächst oberstes Element sichbar machen</font>
    .SelectedItem = .ListItems(topIndex)
    .SelectedItem.EnsureVisible
 
    <font color=green>' dann das unterstes Element sichtbar machen</font>
    .SelectedItem = .ListItems(botIndex)
    .SelectedItem.EnsureVisible
 
    <font color=green>' jetzt gewünschtes Element markieren</font>
    .SelectedItem = .ListItems(Index)
  End With
End Sub
Wie gesagt, die Variable MaxVisible muss Du vorgeben, z.B:
Const MaxVisible = 11
Cu
Dieter
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
ListView1; Autoscroll wie?58Lutz Ebbing07.12.01 08:55
Re: ListView1; Autoscroll wie?379ModeratorDieter07.12.01 09:39
Re: vielen Dank Dieter35Lutz Ebbing08.12.01 18:28

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