VB.Net Forms - MDI表单定位不正确



我有一个问题与MDI形式和他们的位置。我有一个容器表单,我在其中打开几个子窗体。还请注意,在容器表单中,我在顶部有一个ToolStrip,它也停靠在顶部。在每个子窗体中,我设置了以下属性。我在设计时也设置了它们,但由于某种原因它不起作用,所以我也把它们放在form_load事件中。

Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
Me.Dock = DockStyle.Fill
ReSizeAndArrange(Me.Width, Me.Height, False)

form_loadform_layout事件时调用ReSizeAndArrange函数。我遇到的问题是,子表单没有正确填充剩余的空间,也没有填充整个父表单。当我逐步执行时,这里是我为子窗体获得的坐标。

frmContainer.Size   {Width = 972 Height = 972}  System.Drawing.Size
me.Size     {Width = 968 Height = 901}  System.Drawing.Size
frmContainer.ToolStripMain.Size {Width = 954 Height = 67}   System.Drawing.Size
frmContainer.Location   {X = 90 Y = 22} System.Drawing.Point
me.Location     {X = -9 Y = -36}    System.Drawing.Point

Me.Location不应该是0,0吗?我想这些数字加起来就是尺寸。这4个像素的差异也许可以用边界来解释,但是,位置是无法解释的。有人能破译吗?

好了,我自己解决了这个问题,只需将表单的位置设置为(0,0)。它仍然没有回答这个问题,但这是一个变通方法。

这是因为0,0没有对表单大小/布局施加限制。它允许它做出决定。您在这里输入的任何值都会强制表单符合您的规范。0,0不是一个变通的方法,这是一种"你自己决定"的方法。

最新更新