今天,在弄一个小程序,需要达到:在子窗体中点击左右按钮时,主窗体中相对应的Gridview中的焦点跟着改变。
委托一般可以这么认为:委托就是把一个方法作为另一个方法的参数去使用。
实现该功能的具体步骤:
1、在子窗体中声明委托、实例委托对象
//定义委托
public delegate void SteNewsFormGridViewShow(int handle);
//在类里面实例委托
public SetNewsFormGridViewShow SetRowHandle;
源代码:
2、在父窗体中注册委托事件
1>实例化子窗体
2>给子窗体的委托变量注册事件
//实例化子窗体
NewsBulletinForm frm = new NewsBulletinForm();
//注册一个委托事件
frm.SetRowHandle += new SetNewsFormGridViewShow(ChangeRowHandle);
//委托事件执行方法
private void ChangeRowHandle(int handle)
{
gvNews.FocusedRowHandle = handle;
}
源代码:
3、在之窗体具体操作需要主窗体同步显示的地方执行委托方法
//委托方法
int index;
SetRowHandle(index);
源代码: