여러 자식 폼이 있지만 그 중 하나의 공통 메서드가 get_CurrentClamp()
입니다. MDI 부모로부터 현재 활성화 된 mdichild 메서드를 호출하고 싶습니다.mdi parent에서 자식 폼 메서드를 호출하는 방법 C#
이것은 MDIparent 형태의 메뉴 항목의 onclick 이벤트 인 메소드를 호출한다 MDIMain.cs.
자식 폼에서....
private void mnugetCToolStripMenuItem_Click(object sender, EventArgs e)
{
if (MdiChildren.Any())
{
Form f = this.ActiveMdiChild;
f.get_CurrentClamp(varCurrentThreshhold);
}
}
.....
에게 frmDashboard.cs
public void get_CurrentClamp(float curThreshhold=5.5)
{
...
}
하지만 난이 오류가 계속은 언제 어디 잘못 갈거야? 어떤 도움이라도 대단히 감사하겠습니다!
오류는 점점이
오류 3 'System.Windows.Forms.Form이' 'get_CurrentClamp'에 대한 정의와의 첫 번째 인수를 받아들이는없는 확장 메서드 'get_CurrentClamp' 를 포함하지 않는 것입니다 유형 'System.Windows.Forms.Form이' 볼 수 있습니다 (당신은 using 지시문 또는 어셈블리 참조가?)
를 오류가 mdiparent 양식을 얻고있다 이잖아. 활성 형태가 frmDashboard
인스턴스 중 하나가 될 것 확신 경우
무엇이 오류입니까? –
get_CurrentClamp를 찾을 수 없습니까? –
표준 형식 유형으로 캐스팅하고 있습니다. 물론 get_CurrentClamp()라는 메서드가 없습니다. Reflection을 사용하여 메서드를 가져 와서 호출 할 수 있습니다. 더 나은 해결책은 모든 자녀 양식이 해당 방법을 포함하는 ** 인터페이스 **를 구현하도록하는 것입니다. 인터페이스로 캐스팅하고 메소드를 호출 할 수 있습니다. –