2012-09-05 3 views
1

자식 폼 중 하나의 사용자 입력에 따라 MDI 부모 폼의 이름 (텍스트) 헤더를 변경하려고합니다.Winforms - 하위 폼에서 MDIParent 폼의 이름 변경

나는이 코드를 시도했다 :

frmMain main = (frmMain)this.MdiParent; 
main.Text = "New Name"; 

을하지만 객체 참조 오류를 설정하지 얻을.

+1

을하려고 생각? 할당 전에'null '에 대해'this.MdiParent'를 체크하십시오. –

+0

부모 양식을 언제 변경하려고합니까? 양식이 닫힐 때입니까? 입력 컨트롤의 값이 변경되면? – Servy

답변

2
this.MdiParent.Text="New Name"; 

하지만 난 당신이 당신이 실제로 양식이`frmMain`의 자식 확신이

Form child = new Form(); 
String formText = "Child "; 
child.Text = formText; 
child.MdiParent = this; 
+1

http://stackoverflow.com/questions/3244121/how-to-display-string-on-title-bar-on-mdiparent-form-from-login-form – perilbrain

+1

의견에있는 게시물이 도움이되었습니다 - 감사합니다. – PJW

1

아마 당신이 자식 폼의 생성자에서 그렇게하려고 시도하기 때문입니다. MdiParent 속성은 생성자가 완료 될 때까지 설정할 수 없습니다.

자식 폼에서 OnLoad 메서드를 오버로드하고 부모의 Text 속성을 변경하십시오.

+0

사용자 입력을 기반으로 텍스트를 설정하려고한다고 가정하면 코드가 생성자에있을 것 같지 않습니다. – Servy

+0

위의 코드는 Main 폼 이름을 변경하려고 할 때 자식 폼에있는 단추의 OnClick 이벤트에 있습니다. – PJW

+0

@PJW 그러면 Anm ymous가 올바르지 만 자식 폼을 만들 때 MdiParent 속성을 설정하지 않은 것입니다. – Tergiver

관련 문제