vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Oberfläche · Fenster   |   VB-Versionen: VB4, VB5, VB614.05.01
Controls einer Form scannen

Automatiche Abfrage aller Contols, Erkennen des Typs, ggf Änderung der Eigenschaften.

Autor:   Andreas TobolaBewertung:  Views:  22.740 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Die nachfolgende Routine zeigt, wie man alle Steuerelemente eines bestimmten Typs innerhalb einer Form ermitteln kann, um dann z.B. gezielt Eigenschaften zu ändern.

Dim Control As Control
 
For Each Control In Form1.Controls
  ' Leere Textfelder rot markieren
  If TypeOf Control Is TextBox Then
    If Control.Text = "" Then
      Control.BackColor = RGB(255, 0, 0)
    Else
      Control.BackColor = RGB(255, 255, 255)
    End If
  End If       
 
  ' oder alle Label-Steuerelemente "fett"
  If TypeOf Control Is Label Then
    Control.FontBold = True
  End If
Next Control

Ein weiteres Beispiel für das Scannen aller Controls einer Form ist das autom. Zuweisen einer bestimmten Schrift. Lassen Sie z.B. den Anwender Ihrer Software individuell einstellen, welche Schrift für die Darstellung der Steuerlemente und der Form selbst verwendet werden soll.

Public Function SetFormFont(F As Form, _
  ByVal FontName As String, ByVal FontSize As Integer) _
  As Boolean
 
  Dim Result As Boolean
  Dim Control As Control
  Dim I As Integer
 
  ' Prüfen, ob gewünschte Schrift vorhanden
  ' Hierzu die Fonts-Auflistung "durchlaufen"
  Result = False
  For I = 0 To Screen.FontCount
    If Screen.Fonts(I) = FontName Then
      Result = True
      Exit For
    End If
  Next I
 
  ' OK, Schrift ist vorhanden
  If Result Then
    ' Manche Steuerelemente besitzen keine
    ' Font-Eigenschaft: Deshalb Fehler unterdrücken
    On Local Error Resume Next
    For Each Control In F
      Control.Font.Name = FontName
      Control.Font.Size = FontSize
    Next
    On Local Error GoTo 0
  End If
 
  SetFormFont = Result
End Function

Es lassen sich auch ganz bestimmte Steuerelemnt-Typen von der autom. Schrift-Zuweisung ausschliessen. Hierzu fügen Sie einfach folgenden Code zwischen For Each Control In F ... Next ein:

For Each Control In F
  ' wenn es sich um KEINE ListBox handelt
  If Not TypeOf Control Is ListBox Then
    Control.Font.Name = FontName
    Control.Font.Size = FontSize
  End If
Next

Der Aufruf der Routine zum autom. Setzen der Schriftart aller Steuerelemente einer Form erfolgt so:

Private Sub Form_Load()
  ' z.B. wenn Form geladen wird
  SetFormFont Me, "Tahoma", 8
End Sub



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.