2013-02-24 4 views
0

mdichild가 완료 될 때까지 코드를 중지해야하기 때문에 Showdialog()를 mdi 형식으로 열어야합니다.mDi의 ShowDialog

프로그램의 구조는 이것이다, 나는 대신이의에서 onCreate에서 클래스를 mdichild을 열고 생성자에서 나는 코드 있습니다 드 SearchForm

엽니 다

frm_bsq_persona busqueda_persona = new frm_bsq_persona(); 
    busqueda_persona.MdiParent = this.MdiParent.MdiParent; 
    busqueda_persona.Show();  

매우 감사를 .

답변

0

대화 형태 (MDI 모달 해결 방법) 등 MDI 자식
http://www.codeproject.com/Articles/48436/MDI-child-as-dialog-form-MDI-modal-workaround

그것은 부모 폼에 모든 컨트롤을 비활성화 및 EventReceiver의 방법을 제공하여 작동

대화에서 DialogResult를받을 수 .

몇 가지주의 사항이 있습니다. 모든 컨트롤이 반환 될 때마다 다시 활성화되므로 부모 폼의 상태가 완벽하게 보존되지 않습니다. 원하는 경우 대화 상자를 만들기 전에 상위 폼의 상태 (또는 이미 비활성화 된 컨트롤)를 저장하고 이벤트 수신기가 호출 될 때 상태를 복원해야합니다.

+0

나는이 해결책을 시도했지만 올바르게 작동하지만 다른 창을 닫을 때까지 코드를 깨뜨리지 않으며 내 문제이기 때문에 감사합니다. – cib009