2016-05-23 30 views
0

我正嘗試使用VB.NET程序設置爲每次窗體加載時爲每個窗體加載背景圖像。到目前爲止,我已經設法讓程序以一種形式設置背景,並且改變了其他形式的背景。但是,當程序運行時關閉並重新打開每個窗體時,背景將變回默認窗體。我需要以某種方式更改一次背景,並在每次打開表單時加載它,以便在程序運行時每次重新打開表單時都不會切換回。我認爲有一些方法可以在VB.NET中使用My.Settings來做到這一點,但我不確定。在不同形式之間使用VB.NET變量

這是改變每種形式後臺代碼:

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

PreviewBackgroundBox用於向用戶顯示圖像,他們申請前,然後當他們點擊應用,然後將圖像從拍攝PreviewBackgroundBox並設置爲所有表單的背景。

有人可以幫助我嗎?

謝謝!

+0

'PreviewBackgroundBox'是一個窗體類名嗎? – Plutonix

+0

'PreviewBackgroundBox'是窗體上的PictureBox –

回答

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 

注:字典存儲一些數據,並將其與用於檢索該數據的重要關聯。在這裏,我將使用表單的名稱作爲Key。您也可以使用表單的類型GetType(Form1)Me.GetType()並使用Dictionary(Of Type, Image)代替。

每當用戶選擇另一個圖像調用SetImage爲了記住它。打開表格時,請撥打GetImage以獲取記憶中的圖像。

相關問題