visual studio 2017表单位置与picturebox位置不匹配:

时间:2017-10-30 13:11:12

标签: vb.net location

我想根据表单的位置放置一个图片框,这样我就可以移动表单了,框就会停留在同一个地方。 但是,当将图片框的位置设置为等于表单的位置时,当我移动表单时,图片框会更改表单中的位置。 Image 1 Image 2 你会注意到在第一张图片中,图片框靠近表格的左角。这就是我的期望。 当表格远离屏幕的角落时,图片框以类似的方式移动。 与此相关的代码如下。  PictureBox2.Location =新点(Me.Location.X,Me.Location.Y) 如何将图片框的位置设置为在表单上的相同位置。 更多详情: 在你问之前:为什么不把它们定为明确的值,这不是我追求的实际实现。 我正在运行OCR并使用透明的图片框作为我的图像捕获窗口。但是,由于上述问题,它无法正确排列。 用于获取图像的代码是         gfx.CopyFromScreen(新点(Me.Location.X + PictureBox1.Location.X + 100,Me.Location.Y + PictureBox1.Location.Y + 50),新点(0,0),pic.Size) 但是,当我移动表单时,所拍摄的图像与表单位置的相对位置永远不会相同。

编辑:尝试2 我不好意思地忽略了我之前的问题。希望这种尝试更好。

Image 3

图3显示了我希望表单看起来像什么。表格的顶部框是透明的picturebox1。当我单击更新按钮时,我想拍摄该picturebox1位置的屏幕截图,然后填写下面的第二个picturebox2。这就是图像显示的内容。

但是,如果我将表单移动到周围,则会得到以下内容。

Image4

你可以在这里看到现在在picturebox2中拍摄的'照片'不再完美排列,而是拍摄的图像是偏移的。

我希望捕获的图像始终与picturebox1位于同一位置。

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

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值更新更进一步。

为什么会这样,我该如何解决我的问题?

0 个答案:

没有答案