如何在父面板上居中显示show.dialog表单

时间:2018-04-18 11:39:02

标签: vb.net visual-studio

我有使用SplitContainer元素分割两部分的GUI。其中一个是工作区面板的导航面板之一。当我在启动时打开应用程序时,会出现一个用于欢迎用户的新表单(Show.Dialog()),但我想将其加载到工作区面板的中心。

有没有人经历过它如何解决?

 Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        frmWelcome.ShowDialog()
 End Sub

2 个答案:

答案 0 :(得分:3)

假设Panel2WorkSpace面板,请使用Panel.PointToScreen方法计算frmWelcome的屏幕坐标并将其放在中间。
< / p>

请务必在设计器或构造函数中设置frmWelcome.StartPosition = Manual

此处我正在使用Shown事件,以确保已设置MainForm中的预设位置。

Private Sub MainForm_Shown(sender As Object, e As EventArgs) Handles Me.Shown

    Dim p As Point = New Point(((SplitContainer1.Panel2.ClientSize.Width) \ 2) - frmWelcome.Width \ 2,
                               ((SplitContainer1.Panel2.ClientSize.Height) \ 2) - frmWelcome.Height \ 2)

    frmWelcome.Location = SplitContainer1.Panel2.PointToScreen(p)
    frmWelcome.ShowDialog()

End Sub

答案 1 :(得分:0)

您可以使用表单上的属性来执行此操作。

将frmWelcome表单属性StartPosition设置为CenterScreen

如果您希望屏幕的中心打开它,则必须设置MDI,但您可以frmWelcome.ShowDialog(Me)从那里StartPosition并将属性CenterParent设置为var someList : Array<String> = arrayOf("United","Chelsea","Liverpool") someList.forEach { System.out.print(it) }

希望这有帮助!

相关问题