Mit diesem Tipp möchte ich euch zeigen, wie man ganz einfach die Hintergrundfarbe von Formen ändern kann. Prinzipiell ist das natürlich nicht schwer. Einfach die BackColor-Eigenschaft auf den gewünschten Wert setzen & fertig ist es. - Tja, aber was ist z.B. mit den einzelnen TabPages einer TabControl. Oder wie lasse ich z.B. den Hintergrund einer Textbox trotzdem weiß? Ganz einfach - mit dem nachstehenden Tipp. Alles was ihr braucht ist der ColorDialog. Ich habe den ColorDialog als "ColorFree" benannt. Zuerst speichern wir die RGB Farben der ausgewählten Farbe in die Registry. Dim Antwort As Integer Antwort = colFree.ShowDialog() If Antwort <> DialogResult.OK Then Exit Sub Antwort = MsgBox("Sollen die Daten gespeichert und " & _ "angewendet werden?", MsgBoxStyle.Exclamation + _ MsgBoxStyle.YesNo, "Bitte bestätigen Sie") If Antwort = MsgBoxResult.Yes Then SaveSetting("App", "Daten", "FarbeR", colFree.Color.R) SaveSetting("App", "Daten", "FarbeG", colFree.Color.G) SaveSetting("App", "Daten", "FarbeB", colFree.Color.B) MsgBox("Speicherung erfolgreich durchgeführt!", MsgBoxStyle.Information, _ "Speichern erfolgreich") End If Nachfolgenden Code bitte in ein Modul einügen. ACHTUNG! Public Sub Hintergrund(ByVal Formular As System.Windows.Forms.Form) ' Die Variable für alle Controls Dim Ctl As System.Windows.Forms.Control ' Die Variable für die Controls innerhalb einer TabPage Dim CtlTpg As System.Windows.Forms.Control ' Die Variable für die Controls innerhalb einer GroupBox Dim CtlGrp As System.Windows.Forms.Control ' Zuweisung zum TabControl Dim TPc As System.Windows.Forms.TabControl ' Zuweisung zur GroupBox Dim Grp As System.Windows.Forms.GroupBox ' Hier die Zuweisung der RGB Farben zur Variable Farbe ' ################################################################## Dim FarbeR As Integer Dim FarbeG As Integer Dim FarbeB As Integer FarbeR = GetSetting("App", "Daten", "FarbeR") FarbeG = GetSetting("App", "Daten", "FarbeG") FarbeB = GetSetting("App", "Daten", "FarbeB") Dim Farbe As System.Drawing.Color = _ System.Drawing.Color.FromArgb(FarbeR, FarbeG, FarbeB) ' ################################################################## ' Hintergrundfarbe der Form setzen Formular.BackColor = Farbe For Each Ctl In Formular.Controls ' Manche Controls sollen troz Farbänderung immer einen ' weißen Hintergrund haben: If TypeOf Ctl Is System.Windows.Forms.TextBox Then ' Textbox Ctl.BackColor = Color.White ElseIf TypeOf Ctl Is System.Windows.Forms.ComboBox Then ' Combobox Ctl.BackColor = Color.White ElseIf TypeOf Ctl Is System.Windows.Forms.RichTextBox Then ' RichTextBox Ctl.BackColor = Color.White ElseIf TypeOf Ctl Is System.Windows.Forms.ListView Then ' ListView Ctl.BackColor = Color.White ElseIf TypeOf Ctl Is System.Windows.Forms.TabControl Then ' TabControl ' Beim TabControl muss jede TabPage eigens wieder ' angesprochen werden, da die Seiten des TabControls ' einzel behandelt werden müssen ' Übergabe des TabControls auf eine neue Control TPc = Ctl ' alle Seiten durchblättern For i As Integer = 0 To TPc.TabCount - 1 ' Hintergrund des Controls selbt setzen TPc.TabPages(i).BackColor = Farbe For Each CtlTpg In TPc.TabPages(i).Controls If TypeOf CtlTpg Is System.Windows.Forms.TextBox Then ' Textboxen CtlTpg.BackColor = Color.White ElseIf TypeOf CtlTpg Is System.Windows.Forms.ComboBox Then ' Comboboxen CtlTpg.BackColor = Color.White ElseIf TypeOf CtlTpg Is System.Windows.Forms.ListView Then ' Das ListView CtlTpg.BackColor = Color.White ElseIf TypeOf CtlTpg Is System.Windows.Forms.RichTextBox Then ' RichtTextboxen CtlTpg.BackColor = Color.White ElseIf TypeOf CtlTpg Is System.Windows.Forms.Label Then ' Aus VB6 heraus gab es Lines, die in VS2005 ' nicht mehr unterstützt werden - Statt Lines ' hat man nun "enge" Labels. - Alle Labels, ' deren Namen mit einem "_" beginnt, ist eine ' Linie und soll deshalb in Schwarz abgebildet ' werden If Mid(CtlTpg.Name, 1, 1) = "_" Then CtlTpg.BackColor = Color.Black Else ' Alle anderen Labels, sollen natürlich auch ' in der gewünschten Hintergrundsfarbe sein CtlTpg.BackColor = Farbe End If ElseIf TypeOf CtlTpg Is System.Windows.Forms.GroupBox Then ' Auch für GroupBoxen gilt das gleiche wie für ' TabControls - Auch da müssen die Controls ' eigen angesprochen werden ' Übergabe des Controls Grp = CtlTpg ' Hintergrund der Groupbox selbst ändern Grp.BackColor = Farbe ' Jedes Control innerhalb der GroupBox ' mit der Hintergrundfarbe setzen For Each CtlGrp In Grp.Controls If TypeOf CtlGrp Is System.Windows.Forms.TextBox Then ' TextBox CtlGrp.BackColor = Color.White ElseIf TypeOf CtlGrp Is System.Windows.Forms.ComboBox Then ' Combobox CtlGrp.BackColor = Color.White ElseIf TypeOf CtlGrp Is System.Windows.Forms.RichTextBox Then ' RichtTextBox CtlGrp.BackColor = Color.White Else ' alle Anderen die Farbe CtlGrp.BackColor = Farbe End If Next Else ' allen anderen Controls innerhalb des ' TabControls die Farbe zuweisen CtlTpg.BackColor = Farbe End If Next Next i ElseIf TypeOf Ctl Is System.Windows.Forms.GroupBox Then ' Auch für GroupBoxen gilt das gleiche wie für ' TabControls - Auch da müssen die Controls ' eigen angesprochen werden ' Übergabe des Controls Grp = Ctl ' Hintergrundfarbe der GroupBox selbst setzen Grp.BackColor = Farbe For Each CtlGrp In Grp.Controls If TypeOf CtlGrp Is System.Windows.Forms.TextBox Then ' Textboxen CtlGrp.BackColor = Color.White ElseIf TypeOf CtlGrp Is System.Windows.Forms.ComboBox Then ' ComboBoxen CtlGrp.BackColor = Color.White ElseIf TypeOf CtlGrp Is System.Windows.Forms.RichTextBox Then ' RichTextBoxen CtlGrp.BackColor = Color.White Else ' allen anderen die richtige Farbe zuweisen CtlGrp.BackColor = Farbe End If Next Else ' allen anderen Controls die richtige Farbe zuweisen Ctl.BackColor = Farbe End If Next End Sub So, jetzt braucht ihr nur noch im Form_Load-Ereignis der Form folgenden Befehl eingeben... Hintergrund (Me) ...und schon erscheint alles in der von euch ausgewählten Farbe. PS: Dieser Code wurde in VS2005 geschrieben und getestet. Sollte aber in allen .NET Versionen funktionieren. Dieser Tipp wurde bereits 32.555 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
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. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. Neu! sevPopUp 2.0 Dynamische Kontextmenüs! Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... |
||||||||||||||||
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. |