Vb.net 如何更改表单中所有标签的前景色?
我正在用VisualBasic.NET中的WinForms编写一个简单的schedule planner应用程序,我有一个“编辑首选项”,希望用户能够更改所有标签的颜色。我尝试使用以下代码:Vb.net 如何更改表单中所有标签的前景色?,vb.net,winforms,visual-studio-2010,Vb.net,Winforms,Visual Studio 2010,我正在用VisualBasic.NET中的WinForms编写一个简单的schedule planner应用程序,我有一个“编辑首选项”,希望用户能够更改所有标签的颜色。我尝试使用以下代码: Public Sub darkMode(ByVal darkModeOn As Boolean) If darkModeOn Then For Each c As Control In Me.Controls If c IsNot lblTitle Then
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
但是,当我运行该代码时,它只会更改
标签
的前景色
,这些标签是表单的直接子项,并且这些更改不适用于标签
在其他容器(如面板
s)中。是否有任何方法可以更改所有标签的前景色
,即使那些不是表单的直接子项
?更改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
谢谢D那太好了。