특정 자식의 여러 인스턴스를 포함 할 수있는 MDI 부모 창이 있습니다 frmChild. 이제 특정 컨트롤이 부모를 클릭했을 때, 나는 활성 frmChild을 얻을 frmChild에서 특정 메소드를 호출 할 필요가 아래부모로부터 특정 MDI 자식의 메서드 호출
내가 달성하기 위해 노력하고있는 무슨의 이미지입니다 (활성 MDI 자식을 가져오고 호출 그 클래스의 특정 방법) :
a busy cat http://i47.tinypic.com/aurv7.jpg
지금 각 frmChild에 의해 인스턴스화 :
private void newFileToolStripMenuItem1_Click(object sender, EventArgs e)
{
frmNewDocument = new frmNewDocument();
frmNewDocument.MdiParent = this;
frmNewDocument.Show();
}
난에서 메소드를 호출 할 활성 frmChild, 나는 다음을 시도하고와 붙어 : 난 아직도 OOP를 배우고 확신하고
private void saveFileToolStripMenuItem1_Click(object sender, EventArgs e)
{
/* get active MDI child*/
Form frmActiveNewDocument = this.ActiveMdiChild;
/* make sure MDI child is a "New Document" type form */
if (frmActiveNewDocument.GetType() == frmNewDocument.GetType())
{
/* invoke a method from active frmChild here */
}
}
이 몇 가지 원칙이다. 그 기사에서 언급 될 수 있다면 그것은 또한 위대한 것입니다.
** 참고 : frmChild에 대한 간섭이이 문제에 접근하는 가장 좋은 방법이므로 기본 폼은 각 frmChild에서 파기 할 필요가 없으므로 frmChild가 사용하는 인터페이스를 만들었습니다. 입니다 : ** 지금
public interface NewFileFormInterface
{
void saveFile();
}
, SAVEFILE() 내가 frmChild에서 구현 홈페이지에서 호출 할 방법입니다.
이 문제와 제가 조사 할 수있는 몇 가지 키워드에 대한 도움이 될 것입니다.
TIA!
답장을 보내 주셔서 감사합니다. 이 방법이 도움이되었지만 가능한 해결책인데 실제 양식 대신 인터페이스를 사용하는 방법이 있습니까? 죄송합니다.이 말이 의미가 없지만 지금은 혼란 스럽습니다. 나는 모든 것을 가능한 느슨하게 결합하고 싶습니다. – brazc0re
예,'frmNewDocument'보다는'NewFileFormInterface'를 사용하십시오. 자식 폼이 그 인터페이스를 구현한다고 가정하십시오. – Tergiver
완벽하게 작업했습니다. 예 모든 ** frmNewDocument ** 클래스는 ** NewFileFormInterface를 구현합니다 ** 링크도 감사드립니다. 나는 그들에게 책을 줄 것이다. – brazc0re