PictureBox无处可看

本文关键字:PictureBox | 更新日期: 2024-09-24 09:39:22

我一直在尝试通过代码向Windows窗体中动态添加元素。我需要创建一个PictureBox元素。到目前为止,我有以下代码:

private void Form1_Load(object sender, EventArgs e)
    {
        //stylise form
        this.BackColor = System.Drawing.Color.Black;
        PictureBox bgui = new PictureBox();
        bgui.Image = Properties.Resources.attack_box;
        bgui.Name = "bgui";
        bgui.Location = new Point(0, 600);
        this.Controls.Add(bgui);
        bgui.Visible = true;
    }

然而,当运行此代码时,我只得到之前设置的黑色背景。我研究了许多与我相似的问题;他们都说我需要把它添加到控制中,我已经这样做了,但它仍然没有出现。

如果你能让我深入了解我的错误行为,我将不胜感激。

谢谢,Computo。

PictureBox无处可看

您需要设置PictureBoxWidthHeight属性。

试试这个:

    bgui.Width = 500;
    bgui.Height = 500;

完整代码:

private void Form1_Load(object sender, EventArgs e)
{
    //stylise form
    this.BackColor = System.Drawing.Color.Black;
    PictureBox bgui = new PictureBox();
    bgui.Image = Properties.Resources.attack_box;
    bgui.Name = "bgui";
    bgui.Width = 500;
    bgui.Height = 500;
    bgui.Location = new Point(0, 600);
    this.Controls.Add(bgui);
    bgui.Visible = true;
}

事实证明System.Drawing.Point不会转换为屏幕上的实际像素。我将不得不研究Point如何转换为像素。

这里的工作非常完美。指定SizeMode并更改位置。

    private void Form1_Load(object sender, EventArgs e)
    {
        //stylise form
        this.BackColor = System.Drawing.Color.Black;
        PictureBox bgui = new PictureBox();
        bgui.Image = Properties.Resources.attack_box;
        bgui.Location = new System.Drawing.Point(100, 0);
        bgui.Name = "pictureBox1";
        bgui.SizeMode = PictureBoxSizeMode.AutoSize;
        this.Controls.Add(bgui);
    }