C#的自定义控件调用parent的函数问题

caoyanqi1981 2007-09-04 01:58:17
我的自定义控件中有一个按钮,需要执行引用它的Form CLASS的一个pushflush()方法,应该怎么写??
...全文
238 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zouqiang122 2007-10-11
  • 打赏
  • 举报
回复
北京的雾霾天 2007-09-05
  • 打赏
  • 举报
回复
那么你可以把pushdata声明到一个接口中,然后把所有有pushdata方法的Form都继承自这个接口,然后在FindForm的时候按接口来调用pushdata方法,比如:

//声明一个接口用来统一调用pushdata方法:
interface IData
{
public void pushdata();
}

让Form继承于这个接口:
class Form1:Form, IData
{
public void pushdata()
{
...实现方法
}
}

在控件中这样使用它所在窗体的pushdata方法:

IData id = this.FindForm() as IData;
if( id!=null)
{
id.pushdata();
}
caoyanqi1981 2007-09-05
  • 打赏
  • 举报
回复
假如我不知道实际引用这个自定义控件的Form到底是那一个,又怎么做?
比如有5个Form(都有pushdata()方法)都可能引用这个自定义控件.
北京的雾霾天 2007-09-04
  • 打赏
  • 举报
回复
使用FindForm()方法,

比如:

Form1 parent = this.FindForm() as Form1;

if (parent!=null)
{
//..
}

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧