Vb.net 我有一张父母和孩子的表格。但是当我关闭孩子的时候,它冻结了。为什么?
当我从子窗体单击关闭按钮时,子窗体将移动到屏幕,然后整齐地关闭。但是当我通过父窗体关闭按钮关闭它时,子窗体将移动到屏幕,然后冻结…为什么???tnx提前Vb.net 我有一张父母和孩子的表格。但是当我关闭孩子的时候,它冻结了。为什么?,vb.net,Vb.net,当我从子窗体单击关闭按钮时,子窗体将移动到屏幕,然后整齐地关闭。但是当我通过父窗体关闭按钮关闭它时,子窗体将移动到屏幕,然后冻结…为什么???tnx提前 Public Class ParentForm Private Sub Show_Click(sender As Object, e As EventArgs) Handles button.Click ChildForm.MdiParent = Me ChildForm.Show() End S
Public Class ParentForm
Private Sub Show_Click(sender As Object, e As EventArgs) Handles button.Click
ChildForm.MdiParent = Me
ChildForm.Show()
End Sub
Private Sub Close_Click(sender As Object, e As EventArgs) Handles Login.Click
ChildForm.Refresh()
Do Until Me.Location.X = ChildForm.Width
ChildForm.Location = New Point(ChildForm.Location.X + 1, 250)
Loop
ChildForm.Close()
End Sub
end class
Public Class ChildForm
Private Sub ChildForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.Location = New Point(0, 250)
Me.Refresh()
end Sub
Sub anim() Handles Me.Shown
Me.Refresh()
Do Until Me.Location.X = 350
Me.Location = New Point(Me.Location.X + 1, 250)
Loop
End Sub
Private Sub Close_Click(sender As Object, e As EventArgs) Handles Close.Click
Do Until Me.Location.X = Me.Width + 1000
Me.Location = New Point(Me.Location.X + 1, 250)
Loop
Me.Close()
End Sub
end class
因为这行中有一个bug:
Do Until Me.Location.X = ChildForm.Width
ChildForm.Location = New Point(ChildForm.Location.X + 1, 250)
Loop
首先,您使用了错误的对象(Me
,而不是ChildForm
)。而且,你的逻辑似乎不正确;如果子窗体的位置比其宽度更右(例如,如果子窗体的宽度为300,其X位置为301),则代码将进入无限循环。尝试类似以下内容:
For i As Integer = 0 To ChildForm.Width
ChildForm.Left += 1
Next
这将使它向右移动其宽度,并保持其在屏幕上的垂直位置
编辑:哦,看来您希望父窗体关闭。在这种情况下,请使用以下选项:
For i As Integer = 0 To Me.Width
Me.Left += 1
Next
我来试试……tnx伙计!:D