18

我想向 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);
}
4

4 回答 4

16

在这里(http://www.dotnetperls.com/picturebox)有 3 种方法可以做到这一点:

  • 就像你正在做的那样。
  • 使用 PictureBox 的 ImageLocation 属性,例如:

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

    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”是您使用的图像的正确路径。

于 2013-10-05T04:11:39.323 回答
1

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

  1. 您是否在之后调用此例程InitializeComponent()
  2. 您使用的路径语法是否正确?如果您在调试器中尝试它是否有效?尝试使用反斜杠 (\) 而不是斜杠 (/) 并查看。
  3. 这可能是由于表单中其他一些代码的副作用。尝试在空白表单中使用相同的代码(仅使用构造函数和此函数)并检查。
于 2013-10-05T03:54:58.580 回答
1

当我将图像放入 Load 事件中时,我会在 Windows 窗体中显示图像,如下所示:

    private void Form1_Load( object sender , EventArgs e )
    {
        pictureBox1.ImageLocation = "./image.png"; //path to image
        pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize;
    }
于 2017-06-15T19:59:07.080 回答
0
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);
    }
于 2020-06-09T13:27:39.093 回答