管理模态表单位置

时间:2010-10-03 20:41:36

标签: vb.net

我有一个“加载”表单,我在执行冗长的过程时显示为模式表单。 我正在使用以下内容将表单保持在执行该过程的子表单中心。然而,当最小化\最大化“加载”表单出现在父母之前使它看起来有点不专业。

我可以做些什么(延迟它出现或以不同的方式附加它)?

Private _childForm As FormBusy
Private Const NIM_DELETE = &H2
Private Sub SetChildFormPosition()
    If _childForm Is Nothing Then
        Return
    End If
    Dim newLocation As New Point()
    newLocation.X = Me.Location.X + ((Me.Width - _childForm.Width) \ 2)
    newLocation.Y = Me.Location.Y + ((Me.Height - _childForm.Height) \ 2)
    _childForm.Location = newLocation
End Sub

Private Sub ParentForm_LocationChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LocationChanged
    SetChildFormPosition()
End Sub

1 个答案:

答案 0 :(得分:1)

当我尝试使用空表格时,这两个表格立即出现。延迟可能是处理Windows消息。您可以尝试将Application.DoEvents()放在父表单的循环中以更快地处理消息。