2016-05-23 10 views
0

フォームがロードされるたびに、すべてのフォームの背景イメージを読み込むためにVB.NETプログラム設定を使用しようとしています。これまでは、プログラムをバックグラウンドを1つの形式に設定することができました。これは、他のすべての形式のバックグラウンドを変更します。ただし、プログラムが実行されている間に各フォームが閉じられ、再度開くと、背景がデフォルトの状態に戻ります。私は何とかバックグラウンドを一度変更し、フォームが開かれるたびにロードする必要があります。そのため、プログラムの実行中にフォームが再度開かれるたびにスイッチバックされません。私は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 

注意が関与処理するための方法と一緒にモジュールで、このような辞書を格納することができます。ここでは、フォームの名前をキーとして使用します。また、フォームのタイプGetType(Form1)またはMe.GetType()を使用し、代わりにDictionary(Of Type, Image)を使用することもできます。

覚えておくために、ユーザーが別の画像呼び出しSetImageを選択するたびに。フォームが開かれたら、GetImageを呼び出して想像したイメージを取得します。

関連する問題