Hallo zusammén!
Ich bin dabei von VBA/VB6 auf VB.Net umzusteigen.
Da scheint es ja doch so einige Unterschiede zu geben.
Um das mal vergleichen zu können, bin ich gerde dabei eins meiner VBA Programme
auf VB.Net zu schreiben.
In dem benötige ich ein LiestView um Daten aus einer SQL - Datenbank zu übernehmen.
Das ListView wird auch befüllt, so weit so gut.
Nun möchte ich das ListView sortieren nach den Eintragungen aus der Spalte 15.
Unter VBA war das ein 5 - zeiler.
With ListView1
.Sorted = True
.SortKey = 15
.SortOrder = lvwDescending
End With Kann mir da jemand sagen, wie das unter VB.Net funktioniert?
Mit dem, was ich bislang im Forum bzw. im WWW gefunden habe komme ich noch nicht klar.
Auch die Gestalltung des ListViews an sich mit Icons und unterschiedlichen Zeilenfarben
find ich frecht aufwendig, zumindest dass was ich dazu gefunden habe.
ist das so ok, oder könnte man dass auch noch anders schreiben.
Private Sub ListView1_DrawColumnHeader(ByVal sender As Object, ByVal e As _
System.Windows.Forms.DrawListViewColumnHeaderEventArgs) Handles _
ListView1.DrawColumnHeader
e.DrawDefault = True
End Sub
Private Sub ListView1_DrawItem(ByVal sender As Object, ByVal e As _
System.Windows.Forms.DrawListViewItemEventArgs) Handles ListView1.DrawItem
Dim flags As TextFormatFlags = TextFormatFlags.Left
If Not (e.State And ListViewItemStates.Selected) = 0 Then
e.Graphics.FillRectangle(Brushes.GreenYellow, e.Bounds)
e.DrawFocusRectangle()
Else
With ListView1.Items
If .IndexOf(e.Item) Mod 2 = 0 Then
e.Graphics.FillRectangle(Brushes.White, e.Bounds)
Else
e.Graphics.FillRectangle(Brushes.Beige, e.Bounds)
End If
End With
e.DrawText(flags)
End If
If Not Me.ListView1.View = View.Details Then
e.DrawText(flags)
End If
End Sub
Private Sub ListView1_DrawSubItem(ByVal sender As Object, ByVal e As _
System.Windows.Forms.DrawListViewSubItemEventArgs) Handles _
ListView1.DrawSubItem
Dim flags As TextFormatFlags = TextFormatFlags.HorizontalCenter
Dim flags1 As TextFormatFlags = TextFormatFlags.SingleLine
If e.ColumnIndex = 0 Then
If ListView1.Items(e.ItemIndex).SubItems(15).Text.Length > 0 Then
e.Graphics.DrawImage(Me.ImageList1.Images(20), New Point( _
e.Bounds.X, e.Bounds.Y))
Else
e.DrawText(flags)
End If
ElseIf e.ColumnIndex = 1 Then
If ListView1.Items(e.ItemIndex).SubItems(16).Text.Length > 0 Then
e.Graphics.DrawImage(Me.ImageList1.Images(19), New Point( _
e.Bounds.X, e.Bounds.Y))
Else
e.DrawText(flags)
End If
ElseIf e.ColumnIndex = 2 Then
If ListView1.Items(e.ItemIndex).SubItems(15).Text.Length > 0 Then
e.Graphics.DrawImage(Me.ImageList1.Images(0), New Point( _
e.Bounds.X, e.Bounds.Y))
Else
e.DrawText(flags)
End If
Else
e.DrawText(flags1)
End If
End Sub VG
Dirk |