标准的事件和委托声明写法:
调用事件:
// 定义委托
public delegate void PicChangeHandler(object sender, PicChangeEventArgs args);
/// <summary>
/// 声明切换图片事件
/// </summary>
public static event PicChangeHandler PicChange;
/// <summary>
/// 调用图片切换事件函数
/// </summary>
/// <param name="sender"></param>
/// <param name="args"></param>
public void OnPicChange(object sender, PicChangeEventArgs args)
{
if (PicChange != null)
{
PicChange(this, args);
}
}
/// <summary>
/// 自定义切换图片事件参数类型,根据需要可设定多种参数便于传递
/// </summary>
public class PicChangeEventArgs : EventArgs
{
private Cursor m_cur;
public Cursor Cur
{
get { return m_cur; }
set { m_cur = value; }
}
private PictureEntry m_pic;
public PictureEntry Pic
{
get { return m_pic; }
set { m_pic = value; }
}
public PicChangeEventArgs(Cursor c1, PictureEntry p1)
{
Cur = c1;
Pic = p1;
}
}
触发事件:
// 触发事件, 传递自定义参数
OnPicChange(this, new PicChangeEventArgs(this.pictureBox.Cursor, pic));
调用事件:
RisImageViewer.PicChange += new RisImageViewer.PicChangeHandler(OnPicChange);
public void OnPicChange(object sender, FounderSoft.RISClient.WinForms.RisImageViewer.PicChangeEventArgs args)
{
PictureListItem nextPicItem = new PictureListItem(args.Pic.Pic);
}