C# 将图像显示到windows窗体中

C# 将图像显示到windows窗体中,c#,C#,我想在windows窗体上显示一个图像,但我已经这样做了,图像没有显示出来 我哪里出错了 代码如下: private void Images(object sender, EventArgs e) { PictureBox pb1 = new PictureBox(); pb1.Image = Image.FromFile("../SamuderaJayaMotor.png"); pb1.Location = new Point(100, 100); pb1.Si

我想在windows窗体上显示一个图像,但我已经这样做了,图像没有显示出来

我哪里出错了

代码如下:

private void Images(object sender, EventArgs e)
{
    PictureBox pb1 = new PictureBox();
    pb1.Image = Image.FromFile("../SamuderaJayaMotor.png");
    pb1.Location = new Point(100, 100);
    pb1.Size = new Size(500, 500);
    this.Controls.Add(pb1);
}

这可能有很多原因。我很快想到了几个:

  • 您是否在初始化组件()之后调用了此例程
  • 您使用的路径语法正确吗?如果您在调试器中尝试它,它是否有效?尝试使用反斜杠(\)而不是斜杠(/),请参见
  • 这可能是由于表单中某些其他代码的副作用造成的。尝试在空白表单中使用相同的代码(仅使用构造函数和此函数)并进行检查
  • 这里()有三种方法可以做到这一点:

    • 就像你在做的一样
    • 使用PictureBox的ImageLocation属性,如:

      private void Form1_Load(object sender, EventArgs e)
      {
          PictureBox pb1 = new PictureBox();            
          pb1.ImageLocation = "../SamuderaJayaMotor.png";
          pb1.SizeMode = PictureBoxSizeMode.AutoSize;
      }
      
    • 使用来自web的图像,如:

      private void Form1_Load(object sender, EventArgs e)
      {
          PictureBox pb1 = new PictureBox();            
          pb1.ImageLocation = "http://www.dotnetperls.com/favicon.ico";
          pb1.SizeMode = PictureBoxSizeMode.AutoSize;
      }
      

    请确保“./SamuderaJayaMotor.png”是您正在使用的图像的正确路径。

    当我将图像放入加载事件时,我会以windows窗体显示图像,如下所示:

        private void Form1_Load( object sender , EventArgs e )
        {
            pictureBox1.ImageLocation = "./image.png"; //path to image
            pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
        }
    

    您发布的代码中没有错误,我们可以查看或检查。发布更多代码。我已经这样做了,图像被加载到表单中,但是图像没有显示任何内容,只是签了“x”,我已经检查了名称文件,并将路径更改为“SamuderaJayaMotor.png”,并将该图像包含到项目文件夹中,但当我运行时,它仍然签了“x”,我已经证明,问题是路径。可能您可以使用“../../SamuderaJayaMotor.png”进行验证,因为如果您使用System.Windows.Forms.Application.StartupPath和debug,您将看到StartupPath为“bin/debug/”,然后您需要返回两个文件夹。您可以在这里看到一个@Kaoru示例,您可能希望通过添加这行
    Images来调用
    Images
    函数(此项为空);
    在dotNET提到的任何单击事件或主函数上。
    private void Form1_Load(object sender, EventArgs e)
        {
            PictureBox pb = new PictureBox();
            pb.Location = new Point(0, 0);
            pb.Size = new Size(150, 150);
            pb.Image = Image.FromFile("E:\\Wallpaper (204).jpg");
            pb.Visible = true;
            this.Controls.Add(pb);
        }