Um in VB.NET 2003 die Einträge eines `ListView` nach Datum oder Größe zu sortieren, musst du einen benutzerdefinierten Sortierer implementieren, da die Standard-Sortierung nur nach Tex... [mehr]
Um in VB.NET 2003 in einer `ListView` die Icons versteckter Dateien halbtransparent (wie im Windows Explorer) darzustellen, sind mehrere Schritte nötig, da die Standard-ListView-Steuerung dies nicht direkt unterstützt. Die halbtransparente Darstellung (Alpha-Blending) muss manuell umgesetzt werden. **Vorgehensweise:** 1. **Dateiattribute prüfen:** Überprüfe, ob eine Datei das Attribut "Hidden" (`FileAttributes.Hidden`) besitzt. 2. **Icon extrahieren:** Hole das Standard-Icon der Datei (z.B. mit `SHGetFileInfo` aus der Windows-API). 3. **Icon halbtransparent machen:** Wandle das Icon in ein Bitmap um und setze die Transparenz (Alpha-Wert) auf z.B. 128 (halbtransparent). 4. **ImageList befüllen:** Füge das (ggf. modifizierte) Icon in die ImageList ein, die der ListView zugewiesen ist. **Beispielcode (stark vereinfacht):** ```vb.net Imports System.IO Imports System.Drawing Imports System.Drawing.Imaging Imports System.Runtime.InteropServices ' API für Icon holen <DllImport("shell32.dll")> _ Private Shared Function SHGetFileInfo( _ ByVal pszPath As String, _ ByVal dwFileAttributes As Integer, _ ByRef psfi As SHFILEINFO, _ ByVal cbFileInfo As Integer, _ ByVal uFlags As Integer) As IntPtr End Function Private Const SHGFI_ICON = &H100 Private Const SHGFI_SMALLICON = &H1 <StructLayout(LayoutKind.Sequential)> _ Private Structure SHFILEINFO Public hIcon As IntPtr Public iIcon As Integer Public dwAttributes As Integer <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> Public szDisplayName As String <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=80)> Public szTypeName As String End Structure ' Icon extrahieren Private Function GetFileIcon(ByVal filePath As String) As Icon Dim shinfo As New SHFILEINFO() SHGetFileInfo(filePath, 0, shinfo, Marshal.SizeOf(shinfo), SHGFI_ICON Or SHGFI_SMALLICON) Return Icon.FromHandle(shinfo.hIcon) End Function ' Icon halbtransparent machen Private Function MakeIconSemiTransparent(ByVal icon As Icon) As Bitmap Dim bmp As New Bitmap(icon.Width, icon.Height) Using g As Graphics = Graphics.FromImage(bmp) g.DrawIcon(icon, 0, 0) End Using Dim rect As New Rectangle(0, 0, bmp.Width, bmp.Height) Dim data As BitmapData = bmp.LockBits(rect, ImageLockMode.ReadWrite, bmp.PixelFormat) Dim bytesPerPixel As Integer = Image.GetPixelFormatSize(bmp.PixelFormat) \ 8 Dim ptr As IntPtr = data.Scan0 Dim numBytes As Integer = Math.Abs(data.Stride) * bmp.Height Dim rgbValues(numBytes - 1) As Byte Marshal.Copy(ptr, rgbValues, 0, numBytes) For i As Integer = 0 To rgbValues.Length - 1 Step bytesPerPixel If bytesPerPixel >= 4 Then rgbValues(i + 3) = CByte(rgbValues(i + 3) \ 2) ' Alpha halbieren End If Next Marshal.Copy(rgbValues, 0, ptr, numBytes) bmp.UnlockBits(data) Return bmp End Function ' Anwendung auf ListView Private Sub AddFileToListView(ByVal filePath As String, ByVal lv As ListView, ByVal imgList As ImageList) Dim fi As New FileInfo(filePath) Dim icon As Icon = GetFileIcon(filePath) Dim bmp As Bitmap If (fi.Attributes And FileAttributes.Hidden) = FileAttributes.Hidden Then bmp = MakeIconSemiTransparent(icon) Else bmp = icon.ToBitmap() End If imgList.Images.Add(filePath, bmp) Dim lvi As New ListViewItem(fi.Name) lvi.ImageKey = filePath lv.Items.Add(lvi) End Sub ``` **Hinweise:** - Die halbtransparente Darstellung funktioniert nur, wenn die ImageList auf `ColorDepth` 32 Bit steht. - Die Windows-ListView unterstützt keine echte Alpha-Transparenz unter Windows XP/2003, aber mit Bitmaps mit Alpha-Kanal kann man einen ähnlichen Effekt erzielen. - Für viele Dateien kann das Extrahieren und Bearbeiten der Icons langsam
Um in VB.NET 2003 die Einträge eines `ListView` nach Datum oder Größe zu sortieren, musst du einen benutzerdefinierten Sortierer implementieren, da die Standard-Sortierung nur nach Tex... [mehr]
Die Eigenschaft `UseItemStyleForSubItems` ist Teil des `ListViewItem`-Objekts in Windows Forms (WinForms) in VB.NET. Sie steuert, ob die Unterelemente (SubItems) eines ListView-Elements (`ListViewItem... [mehr]
In VB.NET 2003 (also .NET Framework 1.1) ist es leider nicht direkt möglich, die `ForeColor` (Textfarbe) einzelner SubItems in einem `ListView`-Steuerelement zu ändern. Die Standard-ListView... [mehr]
In VB.NET 2003 (also .NET Framework 1.1) gibt es leider keine direkte Möglichkeit, die Farbe der ausgewählten Elemente (`SelectedItems`) eines `ListView`-Steuerelements im Detail- oder Repor... [mehr]
Ja, mit VB.NET 2003 kannst du Vorschaubilder (Thumbnails) für die Miniaturansicht eines ListView zeitsparend erstellen. Dazu nutzt du die Klassen aus dem Namespace `System.Drawing`. Hier ein grun... [mehr]
Um in VB.NET 2003 ein **ListViewItem** von einer ListView in eine andere zu kop, kannst du die `Clone()`Methode verwenden. Dabei wird ein, identisches ListViewItem erzeug, das du dann der zweiten List... [mehr]
Um in VB.NET 2003 die Reihenfolge der Zeilen (Items) eines ListView-Steuerelements umzukehren, kannst du die Items in eine Liste kopieren, diese umkehren und dann das ListView neu befüllen. Hier... [mehr]
Um in VB.NET 2003 eine oder mehrere Zeilen (Items) aus einer `ListView` in die Zwischenablage (Clipboard) zu kopieren, gehst du wie folgt vor: 1. **Ausgewählte Zeilen ermitteln:** Über... [mehr]
Um ein in eine `PictureBox` geladene Icon-Datei in VB.NET 2003 wieder als `.ico`-Datei zu speichern, musst du beachten, dass die `PictureBox.Image`-Eigenschaft ein `Image`-Objekt ist. Das direkte Spei... [mehr]
In VB.NET 2003 kannst du ein Icon in eine PictureBox laden, indem du das Icon zuerst in ein Bitmap-Objekt umwandelst, da die PictureBox kein Icon-Objekt direkt anzeigen kann. Hier ein Beispiel: ```vb... [mehr]