我的申请表有两种形式。我想把一个表格放在另一个表格的前面。我想了解为什么这段代码不起作用:
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Location = New Point(200, 200)
Form2.Location = New Point(200, 200)
Form2.BringToFront()
End Sub
Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
Form2.Visible = True
Me.Text = Form2.Location.X
End Sub
End Class
当我运行代码时,第二个表单位于屏幕上的随机位置 如果我删除 Form2.Visible 语句:
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Location = New Point(200, 200)
Form2.Location = New Point(200, 200)
Form2.BringToFront()
End Sub
Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
Me.Text = Form2.Location.X
End Sub
End Class
第二种形式似乎定位正确,但唉,它不可见。
我确信,有一些解决方法。我只是想明白为什么这么简单的事情不能按预期工作。
答案 0 :(得分:0)
正如Hans在评论中提到的那样,您需要将Form.StartPosition设置为FormStartPosition.Manual,以便表单读取您设置的位置。有关如何以及为何采用这种方式的详细信息,请参阅this question on StackOverflow.com。