既然将一部份功能封装为一个用户控件A,当然是希望此用户控件能通用一些的,所以A并不知道调用它的到底是哪一个WinForm。但是调用A的WinForm可以都声明一个同名同参数的方法(如果能不同名更好)。
请各位给点思路或者代码。谢谢!
请各位给点思路或者代码。谢谢!
解决方案 »
- 紧急求助,关于string的问题!
- 3天了没有得到有实质意义的回答,第三次提出同样的问题.我快绝望了
- 语法错误 (操作符丢失) 在查询表达式
- 100分:问题关系N层的问题
- 控件的问题
- 大家帮我分析下到底什么问题?
- Datagrid有没有把相同记录合并的功能。
- 菜鸟问题:如何改变grid中列的caption?
- 在DATAGRID中的模板列中添加了一个CHECKBOX却不知道怎样引发它的CHECKED事件?
- 做为一个程序员,数据库到底要学到一个什么深度呀!!!!!迷茫中!
- 急啊!!!!如何获得treeview中某个父节点的所有子节点?????????
- 怎样将一个大文件传送给指定的网络上基于B/S模式的服务器
不是很理解
只用过WinForm中调用用户控件中声明的方法
public delegate void MethodFun( strng sData );---- in your control class
public class yourCtl
{
private MethodFun methodHandle;
// Init "methodHandle" as to init your control object
}
不过现在我对委托还比较模糊,能不能给个简单的实例呢?在WinForm和UserControl里的相应代码大概怎么写?
我的想法是在UserControl里显示分页信息及翻页按钮,当点击翻页按钮时,UserControl得到页码并将页码传递给WinForm中定义的方法,由WinForm的方法来更新DataGrid中数据。
我在网上没找到类似的分页控件,只好想自己弄一个。
我的考虑还可能欠妥,不过也不失为一个参考。
继续静下心看了一下委托与事件,大概有了些了解,Fighting~~
public class yourCtrl
{
private MethodFun methodHandle;
// Init "methodHandle" as to init your control object
public yourCtrl( MethodFun mHandle )
{
// Init method handle
methodHandle = mHandle;
} private void CallingHandle()
{
methodHandle( "test" );// Call method as member function
}
}
//------in your form class// Define function for control
private void frmMethodFun( string sData )
{
// Process data here
}// Init your control
yourCtrl myCtrl = new yourCtrl( new MethodFun( frmMethodFun ) );
昨晚我用这样的办法基本实现了:在用户控件里自定义一个事件并触发,在WinForm里捕获并处理。现在还在调试中,等下再试试您的办法。