使用 Visual Studio 2010、WinForms 和 VB.Net,我尝试将一个表单用作“用户设置”页面 (Form2),其中包含 Form1 的“主题”变量。基本上在用户在用户设置中输入不同的主题名称(最终将是一个下拉列表)并单击保存按钮后,我希望使用新的主题设置重新绘制或重新加载 Form1。
我尝试过使用刷新、隐藏/显示 Form1、回忆 form_load 事件以及许多其他事情。我已经在网上寻找一种使用新主题设置重绘或卸载/重新加载 form1 的方法,但我没有找到任何可行的方法,一旦用户将用户设置保存在 form2 上,我就会更改 form1 的颜色设置。
根据我阅读的逻辑和文档,这些选项之一应该可以工作,但它们都不会改变 form1 的背景颜色。我尝试在加载事件、显示事件等上调用 ColorChange。
我不想使用颜色对话框,因为我不希望用户选择单个颜色。我希望他们从保存在用户设置中的一系列预先设计的主题中进行选择。这只是一个测试项目,所以你可以让我知道这样做的好处和坏处,同时建议其他方法,但我更愿意理解这些选项都不起作用的原因,并找出一种方法如果可能的话,它会起作用。
表格1
Dim selectedTheme As String = My.Settings.Theme
Sub ColorChange()
Select Case selectedTheme
Case "Desert"
Me.BackColor = Color.Brown
Case "Default"
Me.BackColor = Color.Black
lblErrorMsgs.ForeColor = Color.Red
End Select
End Sub
表格2
Private Sub btnSaveSettings_Click(sender As Object, e As EventArgs) Handles btnSaveSettings.Click
My.Settings.Theme = txtTheme.Text
My.Settings.Save()
Form1.Refresh()
Form1.Show()
Me.Hide()
End Sub