为什么按钮处于偏移位置

时间:2014-01-15 07:08:18

标签: .net vb.net coordinates offset

以下是代码:

Dim nBtn As New Button
    PictureBox1.Controls.Add(nBtn)
    nBtn.Text = "Click Me"
    nBtn.Location = Cursor.Position ' or mouseposition = same result

enter image description here

它的样子......距离我最初点击它的位置大约2英寸。我的代码甚至没有抵消它的位置,所以这是怎么回事? 这是SplitContainer右侧内的图片框。

1 个答案:

答案 0 :(得分:1)

Control.Location指的是相对于控件容器的位置(或者更确切地说,是它的左上角)。

Cursor.Position(和Control.MousePosition)指的是相对于屏幕左上角的位置

因此,如果您的控件的容器恰好位于屏幕的左上角,那么您的代码将起作用。否则,它会像你看到的那样被抵消。您应该看到Control.PointToScreenControl.PointToClient方法是否对您有所帮助;文档对我来说并不完全清楚,但它们可能正是您所需要的。例如:

nBtn.Location = PictureBox1.PointToClient(Cursor.Position)