Vb.net visual studio 2017表单位置不为';t匹配picturebox位置:

Vb.net visual studio 2017表单位置不为';t匹配picturebox位置:,vb.net,location,Vb.net,Location,我想根据表单的位置放置一个picturebox,这样我就可以移动表单,而方框将保持在同一位置。 但是,当将picturebox的位置设置为等于表单的位置时,当我移动表单时,picturebox会更改表单中的位置。 您会注意到在第一幅图像中,picturebox靠近表单的左上角。这就是我所期望的。 当窗体离开屏幕的一角时,picturebox也会以类似的方式移动。 与此相关的代码如下。 PictureBox2.Location=新点(Me.Location.X,Me.Location.Y) 如何将

我想根据表单的位置放置一个picturebox,这样我就可以移动表单,而方框将保持在同一位置。 但是,当将picturebox的位置设置为等于表单的位置时,当我移动表单时,picturebox会更改表单中的位置。 您会注意到在第一幅图像中,picturebox靠近表单的左上角。这就是我所期望的。 当窗体离开屏幕的一角时,picturebox也会以类似的方式移动。 与此相关的代码如下。 PictureBox2.Location=新点(Me.Location.X,Me.Location.Y) 如何将picturebox的位置设置为表单上的同一位置。 更多详细信息: 在你问:为什么不给它们定个值,这不是我想要的实际实现。 我正在运行OCR,并使用一个透明的picturebox作为我的图像捕获窗口。但是,由于上述问题,它无法正确排列。 用于获取图像的代码是 gfx.CopyFromScreen(新点(Me.Location.X+PictureBox1.Location.X+100,Me.Location.Y+PictureBox1.Location.Y+50),新点(0,0),图片大小) 但是,当我移动表单时,拍摄的图像与表单位置的相对位置不同

编辑:尝试2 忽略我之前的问题,因为我问得很糟糕。希望这次尝试更好

图3理想地显示了我希望表单的外观。表单的顶部框是透明的picturebox1。当我单击更新按钮时,我想对picturebox1位置进行屏幕截图,然后在下面填充第二个picturebox2。这是图像显示的内容

但是,如果我将表单移动到周围,您将得到以下结果

gfx.CopyFromScreen(New Point(Me.Location.X + PictureBox1.Location.X + 100, Me.Location.Y + PictureBox1.Location.Y + 50), New Point(0, 0), pic.Size)

PictureBox2.Image = pic

您可以在这里看到,现在在picturebox2中拍摄的“照片”不再完美对齐,而是偏移了拍摄的图像

我希望拍摄的图像始终与图片位于同一位置

拍摄照片时运行的唯一代码如下所示

gfx.CopyFromScreen(New Point(Me.Location.X + PictureBox1.Location.X + 100, Me.Location.Y + PictureBox1.Location.Y + 50), New Point(0, 0), pic.Size)

PictureBox2.Image = pic
项目开始时的代码是

    Dim pic As Bitmap = New Bitmap(270, 100)
Dim gfx As Graphics = Graphics.FromImage(pic)
由于picturebox1位置是相对于表单角点的相对值,因此是恒定的,因此唯一正在更改的值是me.location.x/y。
因此,在我看来,实际的表单移动得比location.x/y值更新得更远


这是为什么?我如何解决我的问题?

那么,您希望它移动还是不移动?因为如果你不这样做,那么你为什么要更改位置?表单中的对象总是相对于表单的位置。你到底想做什么?我已经更新了问题以更准确地反映情况。啊,我明白你在问什么了。仍然可以使用更多的代码,但投票率较高。看一看。即使在移动表单之后,它也有助于获得相同的屏幕位置