我正在使用C#和非常旧版本的.Net。我有数百种表格和课程。每个表单都有一个ProcessDump()方法。打开表单时,其控件将传递给我的类。我需要调用ProcessDump方法,我所拥有的只是表单的控件。如何访问该方法?
答案 0 :(得分:2)
让每个表单实现一个名为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.
}
}
可能不需要空检查。