Favoriten und Verknüpfungsicons für TreeView

01/07/2008 - 12:43 von Markus Sch. | Report spam
Hallo,

möchte in einer Windows Forms Anwendung in einem TreeView einen Favoriten
Eintrag erstellen. Das Icon dieses TreeNodes sollte der Stern vom Internet
Explorer sein. (Oder so àhnlich.) Wo finde ich so ein Icon welches ich
verwenden kann? (Habe in Google nachgesehen. Nichts gefunden.)

Die ChildNodes sollen Verknüpfungen zu anderen TreeNodes im TreeView sein.
Jede Verknüpfung soll das Icon des TreeNodes erhalten zu dem es zeigt.
Im Windows Explorer ist links unten zusàtzlich ein Pfeil der die Verknüpfung
kennzeichet.

Frage: Muss für jede Klasse von Objekten 2 mal ein Icon erstellt werden?
Eins ohne den Pfeil (für ein Objekt der Klasse) eins mit (für die
Verknüpfung dahin). Oder gibt es die Möglichkeit 2 Icons übereinander zu
legen? Also das Icon der Klasse mit dem Pfeil-Icon um es als Verknüpfung zu
einem Objekt der Klasse zu kennzeichnen?

Vielen, vielen Dank,
Markus
 

Lesen sie die antworten

#1 Karsten Sosna
02/07/2008 - 06:14 | Warnen spam
"Markus Sch." schrieb im Newsbeitrag
news:
^^^^^^^^^^^^^^^
Hier sollte der volle Name(Vor- und Zuname) stehen.
möchte in einer Windows Forms Anwendung in einem TreeView einen Favoriten
Eintrag erstellen. Das Icon dieses TreeNodes sollte der Stern vom Internet
Explorer sein. (Oder so àhnlich.) Wo finde ich so ein Icon welches ich
verwenden kann? (Habe in Google nachgesehen. Nichts gefunden.)

Die ChildNodes sollen Verknüpfungen zu anderen TreeNodes im TreeView sein.
Jede Verknüpfung soll das Icon des TreeNodes erhalten zu dem es zeigt.
Im Windows Explorer ist links unten zusàtzlich ein Pfeil der die
Verknüpfung
kennzeichet.

Frage: Muss für jede Klasse von Objekten 2 mal ein Icon erstellt werden?
Eins ohne den Pfeil (für ein Objekt der Klasse) eins mit (für die
Verknüpfung dahin). Oder gibt es die Möglichkeit 2 Icons übereinander zu
legen? Also das Icon der Klasse mit dem Pfeil-Icon um es als Verknüpfung
zu
einem Objekt der Klasse zu kennzeichnen?



Hallo Markus,
die Icons findest Du in der Shell32.dll . Das Icon mit Verknüpfung muss Du
selber kombinieren.
\\\
Private Declare Auto Function ExtractIconEx _
Lib "shell32.dll" ( _
ByVal lpszFile As String, _
ByVal nIconIndex As Integer, _
ByRef phiconLarge As IntPtr, _
ByRef phiconSmall As IntPtr, _
ByVal nIcons As Integer _
) As Integer

Private Declare Function DestroyIcon _
Lib "user32" ( _
ByVal hIcon As IntPtr _
) As Integer

Friend WithEvents TreeView1 As New TreeView
Friend WithEvents ImageList1 As New ImageList

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.Load
ImageList1.ImageSize = New Size(16, 16)
ImageList1.ColorDepth = ColorDepth.Depth32Bit
TreeView1.ImageList = ImageList1
TreeView1.Parent = Me

Dim lSmallIcon As IntPtr
Dim lResult As Integer
Dim lIcon As Icon

Using BM As New Bitmap(16, 16)
Using G As Graphics = Graphics.FromImage(BM)
'Favoriten
lResult = ExtractIconEx("shell32.dll", 43, IntPtr.Zero,
lSmallIcon, 1)
If CBool(lSmallIcon.ToInt32) Then
lIcon = Icon.FromHandle(lSmallIcon)
ImageList1.Images.Add(lIcon.ToBitmap)
G.DrawImageUnscaled(lIcon.ToBitmap, 0, 0)
DestroyIcon(lSmallIcon)
End If

'Verknüpfung
lResult = ExtractIconEx("shell32.dll", 29, IntPtr.Zero,
lSmallIcon, 1)
If CBool(lSmallIcon.ToInt32) Then
lIcon = Icon.FromHandle(lSmallIcon)
G.DrawImageUnscaled(lIcon.ToBitmap, 0, 0)
ImageList1.Images.Add(BM)
DestroyIcon(lSmallIcon)
End If
End Using
End Using

Dim TN As TreeNode = TreeView1.Nodes.Add("Favorite")
TN.ImageIndex = 0
TN = TN.Nodes.Add("ShortCut")
TN.ImageIndex = 1
End Sub
///
Gruß Scotty

Ähnliche fragen