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
的Width
和Height
属性。
试试这个:
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);
}