-1

我在使用 PictureBoxes 时遇到了奇怪的行为,并缩小了测试用例的范围。

我的测试表上有四个图片框。两个有背景颜色集......一个红色,一个蓝色:

在此处输入图像描述

如果我添加以下代码,红色的 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;

这按预期工作:

在此处输入图像描述

但是,如果我添加代码以对蓝色 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;

在此处输入图像描述

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

4

1 回答 1

3

我怀疑这是问题所在:

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

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

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

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

于 2013-09-25T21:59:06.163 回答