私のアプリケーションには2つの形式があります。あるフォームを別のフォームの前に配置したいと思います。このコードが機能しない理由を理解したい:
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
コードを実行すると、2番目のフォームが画面上のランダムな場所に配置されます。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
2番目のフォームは正しく配置されているようですが、残念ながら表示されません。
確かに、回避策があります。このような単純なことが期待どおりに機能しない理由を理解したいだけです。