2012-11-07 16 views
1

프로젝트에 사용자 정의 컨트롤이 있습니다.이 사용자 정의 컨트롤을 폼에 추가하기 위해 단추를 클릭 할 때 사용자 컨트롤이 이미 폼에 있으면 그것을 보여주고 싶다.사용자 정의 컨트롤이 이미 폼에 있는지 테스트합니다

이것은 내가 지금까지 쓴 코드 :

사용자 제어가 이미 형태인지 아닌지 내가 테스트 할 수 있습니다 방법
Using GstAbonnement As New GestionAbonnement 
      GstAbonnement.Dock = DockStyle.Fill 
      Me.Controls.Add(GstAbonnement) 
End Using 

?

답변

1

현재 코드를 사용하면 Using...End Using 구문을 처리하기 때문에 해당 컨트롤이 양식에서 발견되지 않습니다.

이로 변경합니다 :

Dim GstAbonnement As New GestionAbonnement 
GstAbonnement.Name = "gestionAbonnement1" 
GstAbonnement.Dock = DockStyle.Fill 
Me.Controls.Add(GstAbonnement) 

공지 사항은 내가 컨트롤의 이름을 공급했다.

If Me.Controls.ContainsKey("gestionAbonnement1") Then 
    Me.Controls("gestionAbonnement1").Visible = True 
    Me.Controls("gestionAbonnement1").BringToFront() 
    MessageBox.Show("Found!") 
End If 
: 컨트롤이 컬렉션 또는 아니었다면

지금 당신은 단순히 키를 확인하실 수 있습니다

1

Form.Controls.Find을 사용하여 양식의 특정 컨트롤을 검색 할 수 있습니다. 또한 컨트롤을 포함 할 수있는 하위 컨트롤 (예 : 패널, 그룹 상자)을 검색 할 수있는 속성을 허용합니다.

1

Su Sha가 말한 것처럼 Form.Controls.Find를 사용할 수 있습니다. 또는 Form.Controls를 반복하면 특정 이름으로 컨트롤을 찾을 수 있습니다.

Form.Controls.Find 기능이 더 안전하고 편리합니다.

관련 문제