Rubrik: Controls · ListView & TreeView | VB-Versionen: VB2005, VB2008 | 13.10.09 |
Eingabelänge im TreeView-Control begrenzen Dieser Tipp zeigt, wie sich die Eingabelänge im TreeView-Control auf eine bestimmte Anzahl Zeichen begrenzen lässt. | ||
Autor: Dieter Otter | Bewertung: | Views: 10.504 |
www.tools4vb.de | System: Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Das TreeView-Control verfügt bekanntlich über eine autom. Editier-Funktion, mit der sich der Inhalt eines Node-Objektes zur Laufzeit editieren lässt. Leider gibt es aber keine Eigenschaft, mit der sich die Eingabelänge auf eine maximal zulässige Anzahl von Zeichen begrenzen lässt.
Mit ein bisschen API lässt sich das aber wie folgt realisieren.
Option Explicit ' API-Deklarationen Private Declare Auto Function SendMessage Lib "user32" ( _ ByVal hWnd As IntPtr, _ ByVal wMsg As Int32, _ ByVal wParam As Int32, _ ByVal lParam As Int32) As Int32 Private Const TV_FIRST = &H1100 Private Const TVM_GETEDITCONTROL = TV_FIRST + 15 Private Const EM_LIMITTEXT = &HC5
Private Sub TreeView1_BeforeLabelEdit(ByVal sender As Object, _ ByVal e As System.Windows.Forms.NodeLabelEditEventArgs) _ Handles TreeView1.BeforeLabelEdit ' Handle der Eingabebox ermitteln Dim hWnd As IntPtr = _ SendMessage(TreeView1.Handle.ToInt32, TVM_GETEDITCONTROL, 0, 0) If hWnd <> 0 Then ' maximale Eingabelänge bspw. auf 10 Zeichen festlegen SendMessage(hWnd, EM_LIMITTEXT, 10, 0) End If End Sub