我创建了一个Windows窗体,我希望用户能够在预设的颜色之间进行选择,以便他们可以“个性化”他们的表单。我被迫使用XML文件来存储与所选颜色相对应的值。
我需要弄清楚表单更改所有控件颜色的最快方法。每当程序启动时,都需要在“Form Load”上更改颜色。
表单包含300多个控件(按钮,标签,面板等)
我的替代方案:
1。我可以手动为我的所有控件添加颜色:
Label1.ForeColor = Color.Black
Label2.ForeColor = Color.White
Button1.BackColor = Color.Red
但这将需要永远,如果我更新某些内容,我需要跟踪我的控件名称。
2。循环浏览现有控件,如果找到需要更改的控件,请更改它:
Sub SetColorSettings(ByVal parent As Control)
' Loops through all Controls and changes the colors if they match criteria
For Each c As Control In parent.Controls
If TypeOf (c) Is Button And c.BackColor = Color.White Then ' If It finds a button, and it's White.
c.BackColor = Color.Black ' Change the color to black
Else
If c.HasChildren Then
SetColorSettings(c)
End If
End If
Next
End Sub
这是我所知道的最有效的方法,可以快速更改控件的颜色。
第3。分配特定控件的组或标签
必须有一种简单的方法将控件分配给一个组,然后我可以改变它的颜色。例如:我有10个按钮,我已将6个分配到一个组中,4个分配到另一个组中。
然后,我应该能够以类似于下面的方式更改所有这些组的颜色:
Group1.ForeColor = Color.White
Group2.BackColor = Color.Black