我正在尝试使用VB.NET程序设置在每次加载表单时为每个表单加载背景图像。到目前为止,我设法让程序以一种形式设置背景,并改变其他每种形式的背景。但是,当程序运行时关闭并重新打开每个窗体时,背景将更改回默认窗体。我需要以某种方式更改背景一次并在每次打开表单时加载它,这样每次在程序运行时重新打开表单时它都不会切换回来。我认为有一些方法可以使用VB.NET中的My.Settings来做到这一点,但我不确定。
这是更改每个表单背景的代码:
Me.BackgroundImage = PreviewBackgroundBox.Image
MainForm.BackgroundImage = PreviewBackgroundBox.Image
LogInForm.BackgroundImage = PreviewBackgroundBox.Image
PreviewBackgroundBox
用于在用户应用图像之前向用户显示图像,然后当他们点击应用时,图像将从PreviewBackgroundBox
中获取并设置为所有表单的背景。
有人可以帮我这个吗?
谢谢!
答案 0 :(得分:2)
基本上你需要一本字典,记住要为每个表格显示图像。您可以将这样的字典与处理所涉逻辑的方法一起存储在模块中
Private imageDict As New Dictionary(Of String, Image)
Public Sub SetImage(ByVal formName As String, ByVal img As Image)
imageDict(formName) = img
End Sub
Public Function GetImage(ByVal formName As String) As Image
Dim img As Image
If imageDict.TryGetValue(formName, img) Then
Return img
End If
Return Nothing 'Or return a default image
End Function
注意:字典存储一些数据并将其与用于检索此数据的密钥相关联。在这里,我将使用表单的名称作为密钥。您也可以使用表单的GetType(Form1)
或Me.GetType()
类型,然后使用Dictionary(Of Type, Image)
代替。
每当用户选择另一个图像调用SetImage
以便记住它时。打开表单时,请调用GetImage
以获取记住的图像。