2013-03-24 3 views
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 

두 번째 형태가 올바른 위치에있는 것 같다,하지만 슬프게도, 표시되지 않은합니다.

확실한 해결 방법이 있습니다. 나는 왜 그런 간단한 것이 예상대로 작동하지 않는지 이해하고 싶다.

+1

여기 몇 가지 나쁜 습관이 있지만 핵심 원인은 양식의 StartPosition 속성을 Manual로 설정하는 것을 잊었다는 것입니다. –

+0

안녕하세요 한스! 도움을 주셔서 감사합니다, 그것은 효과가! 그러나 왜 첫 번째 양식이 올바른 장소에 표시됩니까? 나쁜 습관에 대해서도 자세히 설명해 주시겠습니까? – GreenBear

+0

그게 책을 요구하는 질문입니다, 우리는 여기에 그것들을 쓰지 않습니다. 혼자서 이것을 발견하는 가장 좋은 방법은 잠시 동안 C#으로 코드를 작성하는 것인데, 이런 종류의 프로그래밍 스타일로 벗어날 수는 없습니다. 뇌 이식은 심하게 아플 것이며 인생의 1 년을 잃을 것입니다. 그러나 그 후에 훨씬 더 나은 프로그래머가되어 수업과 목표의 차이점을 철저히 이해하게 될 것입니다. –

답변

관련 문제