2012-04-09 2 views
0

일부 양식 숨기기 문제가 있습니다.사용자 컨트롤이 숨어 있지 않은 양식

실제로 사용자 정의 컨트롤이있는 양식이 있습니다. 사용자 정의 컨트롤에 제출 단추가 있습니다. 클릭하면 사용자 정의 컨트롤과 폼이 사라진 상태로 유지됩니다. this.hide()를 사용할 수는 있지만 폼이 아닌 사용자 컨트롤 만 숨기고 있습니다.

은 내가

  form1 f1 = new form1(); 
     f1.hide(); 

을 만들고, 심지어는

 f1.close(), 

을 시도했지만 아무것도 작동하지 않습니다.

편집 도와주세요 : 이것은 실제 코드입니다 :

Input inp = new Input(); 
      inp.Show(); 

가 어디 호출 입력 양식. 로딩 이벤트에서 usinput 사용자 컨트롤을 호출합니다.

   USinput usinp = new USinput(); 

다음 사용자 정의 컨트롤에 버튼을 제출, 사용 다음 코드 :

  Input inpt = new Input(); 
      inpt.Hide(); 
      this.Hide(); 
      Companies co = new Companies(); 
      co.Show(); 

그것은 새로운 형태를 보여주고 사용자 제어가 사라지고 있지만, 입력 양식은 여전히 ​​존재한다.

답변

0
  • 해당 코드로만 시도해 보셨습니까?
  • 컨트롤이 f1이 아니며 이름이 충돌하지 않았는지 확인 했습니까?
  • 제어 클래스 이름이 form1입니까?

주위에는 분명히 뭔가가 있습니다.

편집 : 문제는 첫 줄에 있습니다.

입력 inpt = new Input(); inpt.Hide(); this.Hide(); 회사 = 새로운 회사(); co.Show();

UserControl에서 새 폼을 만듭니다. 그래서 당신은 2 가지 형태가 있습니다! 두 번째는 결코 보이지 않습니다. 폼에 대한 참조를 UserControl에 보내야합니다. 그렇게하면 항상 같은 양식을 사용하게됩니다.

private Form parentForm; 
public USinput(Input parentForm) 
{ 
    this.parentForm = parentForm; 
} 

을 그리고 당신의 버튼 코드이 포함됩니다 제출 :

USinput usinp = new USinput(this); //Will send a reference of the form to the control 

이 컨트롤의 생성자는 다음과 같이 표시됩니다

다음은 양식에서 해당 UserControl을 만드는 방법

parentForm.hide(); 
+0

안녕하세요, 이름 충돌이 없습니다. 예를 들어 여기서 form1 만 사용합니다. 양식 이름을 입력하고 사용자 그것이 가지고있는 통제는 usinput이라고 지명된다. –

+0

코드가 나타나는 메소드의 전체 코드를 제공하십시오. 더 많은 정보를 제공 할 수 있습니다. 또한, defaul에 의해 새로이 인스턴스화 된 폼은 visible = false로 설정됩니다. 따라서 f1.show를하지 않으면 표시되지 않습니다. – Mathieu

+0

편집 된 질문 –

관련 문제