1
我的申請有兩種形式。我想把一個表格放在另一個表格的前面。我想知道爲什麼這個代碼不工作:爲什麼我不能以這種方式設置表單位置屬性?
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
第二種形式似乎是正確的位置,但很可惜,這是不可見的。
我相信,有解決方法。我只是想了解爲什麼這麼簡單的事情不能按預期工作。
這裏有幾個不好的做法,但其核心原因是您忘記將窗體的StartPosition屬性設置爲手動。 – 2013-03-24 14:41:53
嗨,漢斯!感謝您的幫助,它的工作!但爲什麼第一種形式顯示在正確的位置?你能否詳細說明不好的做法? – GreenBear 2013-03-24 14:47:18
這是一個需要一本書的問題,我們不會在這裏寫下它們。自己發現這個最好的方法是通過在C#中編寫代碼一段時間,它不會讓你擺脫這種編程風格。大腦移植將會嚴重受傷,你會失去一年的生活,但在此之後,你將成爲一個更好的程序員,並徹底地理解類和對象之間的差異。 – 2013-03-24 15:00:12