2010-03-14 2 views
0

MenuStrip이 포함 된 MDI Parent가 있습니다. 메뉴 중 하나를 클릭하면 두 개의 하위 폼이 동시에 표시됩니다. C#을 사용하는 WinForm의 MDI 하위 사이 값 전달

은 내가 텍스트 상자내 ChildForm 중 하나 버튼 보내기가 있습니다. 해당 TextBox에 무언가를 입력하고 을 클릭하면 버튼이 전송되므로 두 번째 하위 폼의 TextBox에 그 값을 표시해야합니다.

내가 한 것은 두 번째 하위 폼에서 공용 함수를 작성하고 보내기 단추 클릭 이벤트에서 두 번째 폼의 개체를 만들어 호출하려고했습니다. 내가 Public Function에서 중단 점을 넣었을 때 컨트롤이 Send 버튼을 Cliking 할 때 Public 함수를 통해 흐르고 있음을 발견했습니다. 그러나 전달 된 값은 표시되지 않습니다. 그리고 나는 그것이 표준 방법이 아니라는 것을 압니다.

도움이되는 샘플 스크립트는 무엇입니까? 감사.

답변

0

감사합니다.

코드를 시도했지만 오류가 발생했습니다 : 인덱스가 배열의 경계를 벗어났습니다. 도움을

SecondForm f2= (SecondForm)this.MdiParent.MdiChildren[1]; 
     f2.PublicMethod(some_value_to_pass); 

감사를 다음과 같이

나는,이 작업을하기 위해 약간의 코드를 변경했습니다. :-)

0

질문을 잘못 읽었을 수는 있지만 보내기 버튼의 Click 이벤트에서 SecondForm의 새 인스턴스를 만들고 해당 함수를 호출하는 것처럼 보입니다. 여기에 양식의 새 인스턴스를 만드는 경우 MDI 상위 폼에 이미있는 폼의 인스턴스가 아닙니다 (아무 것도 나타나지 않는 이유가 여기 있습니다).

MDI 상위 폼에 이미있는 SecondForm의 인스턴스에 대한 참조를 얻고 public 메서드를 호출해야합니다. 당신과 같이, 부모 폼의 MdiChildren 수집을 통해 두 번째 양식에 대한 참조를 얻을 수 있습니다 : 답장을

SecondForm f2 = (SecondForm)this.MdiChildren[1]; // second form in collection 
f2.PublicMethod();