그래서 여기입니다 활성 형태의 대화 상자 경우에도 다른 제안 느릅 나무 작업 :
1) 깃발 모든 창 (자식 창)이 인터페이스 :
public interface IPlanViewer
{
//this means that all you windows will have this property
PlanDocument Document { get; }
}
2)은 "컨텍스트"클래스를 만듭니다
public class Context
{
public static Context Current { get; set; }
public IPlanDocument Document { get; set; }
static Context()
{
Current = new Context();
}
}
3)에서 MDI 폼이 방법
private void MdiForm_MdiChildActivate(object sender, EventArgs e)
{
var currentView = Form.ActiveForm as IPlanViewer;
if (currentView != null)
Context.Current.Document = currentView.Document;
}
4)을의이
private void WorkWithCurrentDoc()
{
var doc = Context.Current.Document;
doc.Title = "totot"
// etc ...
}
처럼이 컨텍스트를 사용으로 MdiChildActive 이벤트를 처리합니다. 더 나아 졌습니까?
Manitra.
ParentForm 참조를 ChildForm에 전달하는 것은 비합리적인 일이 아닙니다.그런 다음 ParentForm의 공용 속성을 원하는대로 확인할 수 있습니다. – Greg
"PlanContext.Current"는 어디에서 호출하려고합니까? 그것은 귀하의 GUI 개체 (UserControls 및 양식)에만 있습니까? –