如何在C#.Net中动态更改背景图像?

时间:2011-06-13 11:05:05

标签: c# winforms

现在我正在尝试动态更改MainForm的backgroundimage。 我写了以下代码段......

this.BackgroundImage = Image.FromFile("Bar1.png"); this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;

我想要更改的图片位于我当前的项目中。 但我不知道如何使用FromFile方法?

5 个答案:

答案 0 :(得分:4)

尝试这样的事情:

string path = System.IO.Path.GetDirectoryName( 
      System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase );   



string filename="yourfilename";

this.BackgroundImage = Image.FromFile(Path.Combine(path ,filename)); 

或:

string customPath = "d:\testpath"; 

string filename="yourfilename";

this.BackgroundImage = Image.FromFile(Path.Combine(customPath ,filename)); 

答案 1 :(得分:2)

您可以使用以下代码获取应用程序启动路径:

Application.StartupPath + "\yourimage"

或者您可以使用

System.Reflection.Assembly.GetExecutingAssembly().Location + "\yourimage";

答案 2 :(得分:1)

请阅读有关FromFile方法here的文档。

如果您的资源文件中有图像,则可以像这样访问它:

this.BackgroundImage = Properties.Resources.yourImageName;

答案 3 :(得分:-1)

OpenFileDialog dialog = new OpenFileDialog();

if (dialog.ShowDialog() == DialogResult.OK)
{
    this.BackgroundImage = Image.FromFile(dialog.FileName);
    this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
}

答案 4 :(得分:-1)

  1. 创建一个名为background的目录,位于exe所在的位置。
  2. 复制该目录中的背景jpg文件
  3. 在表单加载事件中添加以下内容

    string path = System.IO.Directory.GetCurrentDirectory()+" \ background \&#34 ;; string filename =" back.jpg&#34 ;; this.BackgroundImage = Image.FromFile(Path.Combine(path,filename));

  4. 如果您更改了保留相同文件名的背景jpg文件,则背景将会更改。