0
我正在使用C#和非常舊的.Net版本。我有數百個表格和一個班級。每個表單都有一個ProcessDump()方法。當表單被打開時,其控件被傳遞給我的班級。我需要調用ProcessDump方法,我擁有的是窗體的控件。我如何訪問該方法?如何從表單控件訪問表單實例
我正在使用C#和非常舊的.Net版本。我有數百個表格和一個班級。每個表單都有一個ProcessDump()方法。當表單被打開時,其控件被傳遞給我的班級。我需要調用ProcessDump方法,我擁有的是窗體的控件。我如何訪問該方法?如何從表單控件訪問表單實例
讓每個形式實現稱爲IProcessDump
的接口:
interface IProcessDump
{
void ProcessDump();
}
假設的WinForms,有FindForm
方法回到.NET 1.1。抓鬥的形式,並測試其接口:
Form formRef = myControl.FindForm();
IProcessDump procDump = formRef as IProcessDump;
if (procDump != null)
{
procDump.ProcessDump();
}
可替換地,控制具有Parent
屬性。對於直接放置在表單上的控件,父項將爲表單:
foreach (Control c in myControls)
{
if (c.Parent != null && c.Parent is Form)
{
// Found, go nuts.
}
}
可能不需要空檢查。
第一個工作正常,謝謝。 – 2012-01-27 12:47:34
究竟是什麼版本? – Oded 2012-01-27 11:44:53
使用反射查找方法並調用它。 Control.FindForm()+ Object.GetType()+ Type.GetMethod()。 – 2012-01-27 12:49:10