与Pictureboxes的奇怪行为

时间:2013-09-25 21:54:15

标签: c# winforms

我遇到了PictureBox的奇怪行为,并缩小了测试用例。

我的测试表单上有四个PictureBoxes。两个有背景颜色设置...一个红色,一个蓝色:

enter image description here

如果我添加以下代码,红色Picturebox正确地将自己置于上部Picturebox:

        this.redPictureBox.Parent = this.pictureBox1;
        this.redPictureBox.Location = this.pictureBox1.Location;
        this.redPictureBox.Height = this.pictureBox1.Height;
        this.redPictureBox.Width = this.pictureBox1.Width;

这可以按预期工作:

enter image description here

但是,如果我添加代码与蓝色PictureBox完全相同的事情,没有任何反应。实际上,看起来顶部的第二个PictureBox完全消失了:

        this.bluePictureBox.Parent = this.pictureBox2;
        this.bluePictureBox.Location = this.pictureBox2.Location;
        this.bluePictureBox.Height = this.pictureBox2.Height;
        this.bluePictureBox.Width = this.pictureBox2.Width;

enter image description here

为什么会出现这种情况?我必须遗漏一些明显的东西,但两者之间的代码是相同的...那么为什么不同的行为?

1 个答案:

答案 0 :(得分:3)

我怀疑这是问题所在:

this.bluePictureBox.Location = this.pictureBox2.Location;

您将图片框2 中的蓝色图片框的位置设置为图片框2相对于容器的位置。我怀疑你想要:

this.bluePictureBox.Location = new Point(0, 0);

这对于红色图片框来说没有太大问题的唯一原因是图片框1靠近屏幕顶部。即便如此,你可以看到它不是它的全高/宽度,而且它不在图片框1的左上角。