2012-03-21 5 views
0

Windows 응용 프로그램이 있습니다.자식 창에서 부모 창에 데이터 저장 하시겠습니까?

Windows 응용 프로그램에는 XML 라이브러리가 있습니다.

public NetspotXMLLibV1 XMLLib; 

    public Form1() 
    { 
     InitializeComponent(); 
     XMLLib = new XmlLibrary.NetspotXMLLibV1(); 
    } 

또한 사용자 정의 컨트롤이 있습니다.

사용자 정의 컨트롤은 버튼을 클릭하면

SelectWidgitWindow widgit = new SelectWidgitWindow(); 
widgit.ShowDialog(); 

을 가지고 그것에 버튼을 가지고, 그것은 새로운 창을 엽니 다. 나는이 새로운 창에서 몇 가지 일을한다. 새 창에서 버튼을 클릭하면 Form1 창에 내용을 저장하고 싶습니다.

새 창 (SelectWidgitWindow)에서 어떻게 액세스합니까? 상위 양식의 속성으로 추출 할 항목을 노출)

1 :

form1.XMLLib.Add(ItemForProcessing); 

또는

Windows(1).XMLLib.Add(ItemForProcessing); 

방법

답변

0

사용 ShowDialog overload

((Form1)Owner).MyProperty = 11; 
+0

f.ShowDialog (this) = this는 부모 양식이 아닌 usercontrol과 같습니다. –

+0

UserControl에서 Parent 속성을 사용하여 컨트롤이있는 양식에 액세스 할 수 있습니다 (반복 할 수 있음). 중첩 된 컨트롤을 지원하는 양식을 찾을 때까지 부모). 편집을 참조하십시오. – Strillo

+0

멋지다. var parent = (Form1) this.Parent; widgit.XMLLib = parent.XMLLib; –

0

커플 도와주세요 아이 양식. 부모 폼의 코드에서 ShowDialog이 반환되면 속성에서 저장할 값을 가져올 수 있습니다.

2) 상위 폼에 대한 참조를 폼에 전달합니다 (구성되었을 때). 그런 다음 하위 폼은 일부 메서드를 호출하거나 부모 폼에 일부 속성을 설정할 수 있습니다. 이 숫자는 이 아니며이 아니라 다른 유형과 연결될 수 없으므로 상위 양식과 연결됩니다.

Form2 f = new Form2(); 
f.ShowDialog(this.Parent); 

과 형식 2의 : 새 양식 소유자를 통과 할 수있는에

+0

1, 나는 아이의 속성으로 항목을 추가 말할 수 창, 그러면이 항목을 고아 사본으로 만듭니다. –

+0

@WelshKing : 참조 (객체) 유형은 참조가 아닌 사본이됩니다. 값 유형은 사본이지만 중요하지 않습니다. –

+0

대단한 감사 :) –

관련 문제