事件和委托

来源:互联网 发布:淘宝如何做主图 编辑:程序博客网 时间:2024/06/05 19:36

第一步 :在任何位置定义一个委托,可以在类里面,也可以在类外面,委托中的参数表示想要传输的参数。

如:这是MapControl类的一个委托,处理OnMouseDown时间。Represents the method that handles the OnMouseDown event.

public delegate void OnMouseDownEventHandler (    intbutton,    intshift,    intX,    intY,    doublemapX,    doublemapY);
第二步:在类内部定义一个事件,事件可以看做是一个委托链,并且在类的内部触发事件,触发事件时,带参数一起发送,如:
在MapControl类内部定义事件:
public event OnMouseDownEventHandler OnMouseDown;
发送事件:
OnMouseDownintbutton, intshift,  intX, intY, doublemapX, doublemapY);
把参数传递出去。
第三步:
为事件绑定方法,执行。
在另一个类中,为事件绑定方法:
MapControl mapcontrol = new MapControl();
mapcontrol.OnMouseDown = new OnMouseDownEventHandler(taget);
private void target(intbutton, intshift,  intX, intY, doublemapX, doublemapY)
{对这些参数进行处理。}
在MapControl编程中,如下:
显示Form1,将AxMapControl传递给Form1。
Form1 frm1 = new Form1(axMapControl1);            frm1.Show();
在Form1中绑定MouseMove事件,显示实时坐标:
public partial class Form1 : Form    {        public Form1(AxMapControl axMapcontrol)        {            InitializeComponent();            axMapcontrol.OnMouseMove += new IMapControlEvents2_Ax_OnMouseMoveEventHandler(axMapControl1_OnMouseDown);        }        public void axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseMoveEvent e)        {            label1.Text = e.mapX + "::" + e.mapY;        }    }

0 0
原创粉丝点击