如何更改表单中所有标签的前景色?
How Do I Change ForeColor of all Labels in a Form?
我正在使用 Visual Basic .NET 中的 WinForms 编写一个简单的日程安排应用程序,我有这个 "Edit Preferences" 我希望用户能够更改所有标签的颜色。我尝试使用此代码:
Public Sub darkMode(ByVal darkModeOn As Boolean)
If darkModeOn Then
For Each c As Control In Me.Controls
If c IsNot lblTitle Then
If TypeOf c Is Label Then DirectCast(c, Label).ForeColor = Color.FromArgb(255, 255, 255)
ElseIf TypeOf c Is Panel Then
For Each pnlPanel As Panel In Me.Controls.OfType(Of Panel)()
pnlPanel.BackColor = Color.FromArgb(66, 66, 66)
Next
End If
Next
End Sub
但是当我 运行 该代码时,它只会更改 Label
的 ForeColor
,它们是表单的直接子项,并且更改不适用于 Label
s 在其他容器内,如 Panel
s。有什么方法可以更改所有 Label
的 ForeColor
,即使那些不是 Form
的直接子代的 ForeColor
?
可能更改 If ElseIf 可以帮助您。
For Each c As Control In Me.Controls
If TypeOf c Is Panel Then
For Each pnlPanel As Panel In Me.Controls.OfType(Of Panel)()
pnlPanel.BackColor = Color.FromArgb(66, 66, 66)
Next
ElseIf c IsNot lblTitle Then
If TypeOf c Is Label Then DirectCast(c, Label).ForeColor = Color.FromArgb(255, 255, 255)
End If
Next
我正在使用 Visual Basic .NET 中的 WinForms 编写一个简单的日程安排应用程序,我有这个 "Edit Preferences" 我希望用户能够更改所有标签的颜色。我尝试使用此代码:
Public Sub darkMode(ByVal darkModeOn As Boolean)
If darkModeOn Then
For Each c As Control In Me.Controls
If c IsNot lblTitle Then
If TypeOf c Is Label Then DirectCast(c, Label).ForeColor = Color.FromArgb(255, 255, 255)
ElseIf TypeOf c Is Panel Then
For Each pnlPanel As Panel In Me.Controls.OfType(Of Panel)()
pnlPanel.BackColor = Color.FromArgb(66, 66, 66)
Next
End If
Next
End Sub
但是当我 运行 该代码时,它只会更改 Label
的 ForeColor
,它们是表单的直接子项,并且更改不适用于 Label
s 在其他容器内,如 Panel
s。有什么方法可以更改所有 Label
的 ForeColor
,即使那些不是 Form
的直接子代的 ForeColor
?
可能更改 If ElseIf 可以帮助您。
For Each c As Control In Me.Controls
If TypeOf c Is Panel Then
For Each pnlPanel As Panel In Me.Controls.OfType(Of Panel)()
pnlPanel.BackColor = Color.FromArgb(66, 66, 66)
Next
ElseIf c IsNot lblTitle Then
If TypeOf c Is Label Then DirectCast(c, Label).ForeColor = Color.FromArgb(255, 255, 255)
End If
Next