ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 11.04.2003

Diese Seite wurde zuletzt aktualisiert am 11.04.2003
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Beschränkte Eingabe

Zurück...


Anzeige

(-hg) mailto:hg_lvwtvwonlynumbers@aboutvb.de

Wenn Sie beim Bearbeiten von Einträgen in einem ListView-Steuerelement oder von Knoten in einem TreeView-Steuerelement die Eingabe auf Ziffern beschränken möchten, können Sie die Fenster-Stile der in diese Steuerelemente "eingebauten" TextBoxen vor ihrem Erscheinen entsprechend modifizieren.

Beide Steuerelemente liefern Ihnen das Handle der TextBox unmittelbar vor dem Beginn des Eingabe-Modus, der Ihnen durch das Eintreffen des BeforeLabelEdit-Ereignisses signalisiert wird. Dort können Sie das Handle über die API-Funktion SendMessage und die Nachrichten LVM_GETEDITCONTROL bzw. TVM_GETEDITCONTROL ermitteln und den Fensterstil der TextBox modifizieren. Zu letzterem holen Sie per GetWindowLong und der Index-Angabe GWL_STYLE den aktuellen Fensterstil der TextBox, ergänzen ihn per Oder-Verknüpfung um den Stil ES_NUMBERS, und schreiben den geänderten Stil per SetWindowLong zurück.

Beide Operationen können Sie in handlichen Hilfsprozeduren zusammenfassen:

Private Declare Function GetWindowLong Lib "user32" _
 Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) _
 As Long
Private Declare Function SendMessage Lib "user32" _
 Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
 ByVal wParam As Long, lParam As Any) As Long
Private Declare Function SetWindowLong Lib "user32" _
 Alias "SetWindowLongA" (ByVal hwnd As Long, _
 ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Const ES_NUMBER = &H2000&
Private Const GWL_STYLE = (-16)

Public Sub LvwOnlyNumbers(ListView As ListView)
  Dim nWnd As Long
  Dim nStyle As Long
  
  Const LVM_FIRST = &H1000&
  Const LVM_GETEDITCONTROL = (LVM_FIRST + 24)
  
  nWnd = SendMessage(ListView.hwnd, LVM_GETEDITCONTROL, 0, 0)
  If nWnd <> 0 Then
    nStyle = GetWindowLong(nWnd, GWL_STYLE)
    nStyle = nStyle Or ES_NUMBER
    SetWindowLong nWnd, GWL_STYLE, nStyle
  End If
End Sub

Public Sub TvwOnlyNumbers(TreeView As TreeView)
  Dim nWnd As Long
  Dim nStyle As Long
  
  Const TV_FIRST = &H1100&
  Const TVM_GETEDITCONTROL = (TV_FIRST + 15)
  
  nWnd = SendMessage(TreeView.hwnd, TVM_GETEDITCONTROL, 0, 0)
  If nWnd <> 0 Then
    nStyle = GetWindowLong(nWnd, GWL_STYLE)
    nStyle = nStyle Or ES_NUMBER
    SetWindowLong nWnd, GWL_STYLE, nStyle
  End If
End Sub

Die Aufrufe im BeforeLabelEdit-Ereignis eines ListViews oder eines TreeViews:

Private Sub ListView1_BeforeLabelEdit(Cancel As Integer)
  LvwOnlyNumbers ListView1
End Sub

Private Sub TreeView1_BeforeLabelEdit(Cancel As Integer)
  TvwOnlyNumbers TreeView1
End Sub

Beispiel-Projekt und Modul modLvwTvwOnlyNumbers (lvwtvwonlynumbers.zip - ca. 3,7 KB)


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikels

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche




Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer