哪种形式打开另一种形式

时间:2015-07-17 04:27:53

标签: vb.net

在我的应用程序中,有一个特定的表单用于输入日期范围。此表单是从应用程序中的许多位置调用的,并使用简单的TestDates.ShowDialog()调用

从多个表单调用

我想将所述表单置于调用它(其父级)的表单上。然而,我无法弄清楚如何确定哪种形式发起了呼叫。

下面的代码具有我能想到的所有可能性(作为测试),即父,所有者,MidParent,它们都没有。

Me.Location = New System.Drawing.Point(Me.Owner.Location.X + (Me.MdiParent.Bounds.Width - Me.Width) \ 2, Me.Parent.Location.Y + (MdiParent.Bounds.Height - Me.Height) \ 2)

我无法使用startposition.Centerparent,因为应用程序会进行一些大小调整,并且调用不会在高DPI中正确地使testdate表单居中。

还有另一种方法可以确定打开测试日期表单的调用的发起者吗?

1 个答案:

答案 0 :(得分:0)

正如所指出的,为了“提供”所有者,或者打开Newform的表单是为了确保您使用NewForm.load(Me)。然后,它将识别ME或进行呼叫的表单。这就是我在代码中遗漏的内容

现在看起来像这样

Me.Location = New System.Drawing.Point(Me.Owner.Location.X + (Me.Owner.Bounds.Width - Me.Width) \ 2, Me.Owner.Location.Y + (Me.Owner.Bounds.Height - Me.Height) \ 2)

如果在新表单上的form.load或Form.shown子中放置上述内容,则会将新表单置于旧表单中心,以便调用此方式NewForm.Show(Me)