我有使用SplitContainer元素分割两部分的GUI。其中一个是工作区面板的导航面板之一。当我在启动时打开应用程序时,会出现一个用于欢迎用户的新表单(Show.Dialog()),但我想将其加载到工作区面板的中心。
有没有人经历过它如何解决?
Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
frmWelcome.ShowDialog()
End Sub
答案 0 :(得分:3)
假设Panel2
是WorkSpace
面板,请使用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) }
希望这有帮助!