Hallo Leute, Möchte bei einem Treeview verschiedene nodes kennzeichnen, ob diese checked sein können. Selbst unter den childnodes möchte ich differenzieren. Leider lässt mich VS nur für das ganze Control das "checkable" aktiveren. Habe jetzt folgende Seite gefunden: http://dotnetfollower.com/wordpress/2011/05/winforms-treeview-hide-checkbox-of-treenode/ Habe nun folgendes Modul erstellt: Imports System.Runtime.InteropServices Module mdlWinAPI Private i As Integer = 0 Private j As Integer = 0 Private node As TreeNode() Public Const TVIF_STATE As Integer = &H8 Public Const TVIS_STATEIMAGEMASK As Integer = &HF000 Public Const TV_FIRST As Integer = &H1100 Public Const TVM_SETITEM As Integer = TV_FIRST + 63 Public Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, _ ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr End Function Public Structure TVITEM Public mask As Integer Public hItem As IntPtr Public state As Integer Public stateMask As Integer Public lpszText As [String] Public cchTextMax As Integer Public iImage As Integer Public iSelectedImage As Integer Public cChildren As Integer Public lParam As IntPtr End Structure Public Sub HideCheckBox(ByVal node As TreeNode) Dim tvi As New TVITEM() tvi.hItem = node.Handle tvi.mask = TVIF_STATE tvi.stateMask = TVIS_STATEIMAGEMASK tvi.state = 0 Dim lparam As IntPtr = Marshal.AllocHGlobal(Marshal.SizeOf(tvi)) Marshal.StructureToPtr(tvi, lparam, False) SendMessage(frmMain.TreeView.Handle, TVM_SETITEM, IntPtr.Zero, lparam) End Sub End Module Leider funktioniert es im VS nicht :-( Aufruf: Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles MyBase.Load TreeView.Nodes.Add("Software") TreeView.Nodes(0).Nodes.Add("Windows XP") TreeView.Nodes(0).Nodes(0).Nodes.Add("Benutzer automatisch anmelden") TreeView.Nodes.Add("Hardware") TreeView.Nodes.Add("Trinksprüche") TreeView.Nodes.Add("Wo ist die Toilette") TreeView.SelectedNode = TreeView.Nodes(0) HideCheckBox(TreeView.Nodes(0)) End Sub Jemand eine Idee?
Es drei Möglichkeiten: 1. Der kopierte Code ist fehlerhaft -> Wende dich an den Autor. 2. Du verwendest den Code falsch -> Wende dich an den Autor. 3. Du hast den Code nicht verstanden -> s.o.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.