【问题标题】:Which form opened another form哪个表格打开了另一个表格
【发布时间】:2015-07-17 14:24:37
【问题描述】:

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

我想将所述表单置于调用它的表单(其父级)上。但是,我无法弄清楚如何确定发起呼叫的表单。

下面的代码具有我能想到的所有可能性(作为测试),即 Parent、Owner、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 表单居中。

还有其他方法可以确定打开考试日期表格的呼叫的发起者吗?

【问题讨论】:

标签: vb.net


【解决方案1】:

正如所指出的,为了“提供”所有者,或者打开 Newform 的 Form 是为了确保您使用 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 sub 中,则新表单将在旧表单上居中,前提是像这样调用NewForm.Show(Me)

【讨论】:

    猜你喜欢
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-02
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    相关资源
    最近更新 更多