vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
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:     [ Jetzt bewerten ]Views:  22.706 
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

Dieser Tipp wurde bereits 22.706 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


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.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle 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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel