0

という質問があります。プロジェクトの最初のフォームであるスプラッシュ フォームがあり、それを閉じた後にそのフォームの背景画像を変更したいと考えています。たとえば、私のソフトウェアが起動し、スプラッシュフォームの後、設定でスプラッシュフォームの背景画像を変更する機能があります。フォームを閉じたときに背景画像を変更できますか? (ユーザーが設定フォームに入るとスプラッシュフォームが閉じられるため)。

背景画像を変更するこのコードフォームを作成しましたが、スプラッシュフォームが開いたときにフォーム画像を変更する方法がわかりません。ファイルを開くダイアログから画像を変更する必要があります。

私のコードは次のとおりです。

var FD = new System.Windows.Forms.OpenFileDialog();
            FD.Filter = "jpeg files|*.jpg";
            if (FD.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                string fileToOpen = FD.FileName;

                System.IO.FileInfo File = new System.IO.FileInfo(FD.FileName);
                BackgroundImage = Image.FromFile(FD.FileName); 
            }
4

2 に答える 2

1

スプラッシュ画像をどこかから読み込むので、その画像をユーザーが OpenFileDialog で選択した画像に置き換えるだけで、次にスプラッシュが表示されたときに新しい画像が読み込まれます。


編集:さらなる説明

ソリューションの例。画像をアプリケーションと同じフォルダー (例: "splash.png") に保存すると、たとえば Splash Form Load イベントでそれを読み込むことができます。これで、ユーザーが設定の画像をファイルを開くダイアログに置き換えたい場合は、選択したファイルをアプリケーションのフォルダーにコピーし (Application.StartupPath でアプリ フォルダーへのパスを取得する必要があります)、古いスプラッシュを上書きするだけです。 png (上書きする前に古いものの名前を変更することもできます) し、次にアプリケーションが読み込まれるときに、それがスプラッシュ フォームが読み込まれる画像です。

これは改善可能な単純なソリューションですが、最初の試みとして、希望する結果が得られるはずです。

于 2013-01-23T07:38:11.147 に答える
1

以下を試してください

スプラッシュ スクリーンの背景画像を既に設定している

eg : it location was  c:\sam.jpeg

フォームクローズイベントで以下のコードを試してください

System.IO.File.Delete(@"C:\Sam.jpeg");
Image.FromFile(FD.FileName).Save(@"C:\Sam.jpeg", System.Drawing.Imaging.ImageFormat.Jpeg);

古いファイルを削除し、新しいイメージを古い名前に設定します...

リロード時に新しい背景画像が表示されます...

于 2013-01-23T07:38:59.257 に答える