如何使用另一个窗体上的打开文件对话框更改窗体的背景图像

时间:2013-01-23 07:31:59

标签: c# winforms openfiledialog

我有一个查询。我有一个启动表单,这是我的第一个项目形式,我希望在关闭之后更改该表单的背景图像。例如我的软件启动和启动后的形式和设置我有一个功能来更改启动窗体的背景图像。表格关闭后我可以更改背景图片吗? (当用户输入设置表单时,我的启动窗体将关闭。)

我已经编写了这段代码表来更改背景图片但我不知道如何在启动表单时更改表单图像应该打开更改打开文件对话框中的图像。

我的代码是:

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); 
            }

2 个答案:

答案 0 :(得分:1)

您从某处加载了启动图像,因此只需将该图像替换为用户使用OpenFileDialog选择的图像,然后在下次显示启动时加载新图像。


编辑:进一步解释

解决方案的一个例子。将图像存储在与应用程序相同的文件夹中(例如:“splash.png”),然后您可以在Splash Form Load事件中加载它。现在,当用户想要使用打开的文件对话框替换设置中的图像时,您只需将选定的文件复制到应用程序的文件夹(Application.StartupPath应该为您提供应用程序文件夹的路径)并覆盖旧的启动。 png(也许你可以在覆盖之前重命名旧的),然后在下次加载应用程序时,这就是Splash表单将加载的图像。

这是一个可以改进的简单解决方案,但作为第一次尝试,它应该产生你想要的结果。

答案 1 :(得分: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);

现在删除旧文件并在旧名称上设置新图像......

在重新加载时显示新的背景图像......