在不同形式之间使用VB.NET变量

时间:2016-05-23 15:40:46

标签: vb.net forms

我正在尝试使用VB.NET程序设置在每次加载表单时为每个表单加载背景图像。到目前为止,我设法让程序以一种形式设置背景,并改变其他每种形式的背景。但是,当程序运行时关闭并重新打开每个窗体时,背景将更改回默认窗体。我需要以某种方式更改背景一次并在每次打开表单时加载它,这样每次在程序运行时重新打开表单时它都不会切换回来。我认为有一些方法可以使用VB.NET中的My.Settings来做到这一点,但我不确定。

这是更改每个表单背景的代码:

Me.BackgroundImage = PreviewBackgroundBox.Image
MainForm.BackgroundImage = PreviewBackgroundBox.Image
LogInForm.BackgroundImage = PreviewBackgroundBox.Image

PreviewBackgroundBox用于在用户应用图像之前向用户显示图像,然后当他们点击应用时,图像将从PreviewBackgroundBox中获取并设置为所有表单的背景。

有人可以帮我这个吗?

谢谢!

1 个答案:

答案 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以获取记住的图像。