关于事件处理的完整框架Event,delegate,event args,无图有真相。

public delegate void SelectItemsChangedEventHandler(ItemChangingEventArgs e);
public class ItemChangingEventArgs : EventArgs
{
public List<string> lstSelItems { get; set; } //这里存放用户选择的分类信息
}

public class Win子窗口
{
public event SelectItemsChangedEventHandler SelectItemsChangedEvent;


public void Win子窗口_Closed()
{
ItemChangingEventArgs args
= new ItemChangingEventArgs();
args.lstSelItems
= new List<string>();
//获取用户选择的分类信息...

//调用自定义事件通知主窗口
this.SelectItemsChangedEvent(args);
}

public void 树形控件SelectIndexChanged事件处理函数()
{
ItemChangingEventArgs args
= new ItemChangingEventArgs();
args.lstSelItems
= new List<string>();
//获取用户选择的分类信息...

//调用自定义事件通知主窗口
this.SelectItemsChangedEvent(args);
}
}

public class Win主窗口
{
Win子窗口 winChild;
public Win主窗口()
{
//主窗口构造函数中初始化子窗口对象,但是不显示,需要的时候调用Show
winChild = new Win子窗口();
winChild.SelectItemsChangedEvent
+= new SelectItemsChangedEventHandler(winChild_SelectItemsChangedEvent);

}

//子窗口分类项选择事件处理
void winChild_SelectItemsChangedEvent(ItemChangingEventArgs e)
{
List
<string> lstRt = e.lstSelItems;
//做需要的事情
//...
}

}
posted @ 2011-06-20 10:57  InFuture  阅读(615)  评论(0编辑  收藏  举报