How to Raise my Custom Event Handler
-
Hi i maked a custom event as 'MouseMoveExEventArgs' that inherited from MouseEventArgs to add some more property and info as follow :
namespace CustomEventHandler { public delegate void MouseMoveExEvent(object sender, MouseMoveExEventArgs e); public class MouseMoveExEventArgs : System.Windows.Forms.MouseEventArgs { Point m_mapScrollPos; public MouseMoveExEventArgs(Point mapScrollPosition) : base(System.Windows.Forms.MouseButtons.Left,1,mapScrollPosition.X,mapScrollPosition.Y,0) { this.m_mapScrollPos = mapScrollPosition; } public Point MapScrollPosition { get { return this.m_mapScrollPos; } } } }
and in my custom user control, write this code :public event MouseMoveExEvent MouseMoveEx; . . . protected virtual void OnMouseMoveEx(MouseMoveExEventArgs e) { if (MouseMoveEx != null) { MouseMoveEx(this, e); } }
but i don't know how to raise this event, when mouse move on my control (like MouseMove event), for this work, i call OnMouseMoveEx event handler in OnMouseMove event handler as follow :protected override void OnMouseMove(MouseEventArgs e) { Point p = new Point(e.X, e.Y); OnMouseMoveEx(new MouseMoveExEventArgs(p)); }
my purpose is that replace orginal MouseEventArgs class with MouseMoveExEventArgs event handler in MouseMove event and raise it when Mousemove event fire. thanks -
Hi i maked a custom event as 'MouseMoveExEventArgs' that inherited from MouseEventArgs to add some more property and info as follow :
namespace CustomEventHandler { public delegate void MouseMoveExEvent(object sender, MouseMoveExEventArgs e); public class MouseMoveExEventArgs : System.Windows.Forms.MouseEventArgs { Point m_mapScrollPos; public MouseMoveExEventArgs(Point mapScrollPosition) : base(System.Windows.Forms.MouseButtons.Left,1,mapScrollPosition.X,mapScrollPosition.Y,0) { this.m_mapScrollPos = mapScrollPosition; } public Point MapScrollPosition { get { return this.m_mapScrollPos; } } } }
and in my custom user control, write this code :public event MouseMoveExEvent MouseMoveEx; . . . protected virtual void OnMouseMoveEx(MouseMoveExEventArgs e) { if (MouseMoveEx != null) { MouseMoveEx(this, e); } }
but i don't know how to raise this event, when mouse move on my control (like MouseMove event), for this work, i call OnMouseMoveEx event handler in OnMouseMove event handler as follow :protected override void OnMouseMove(MouseEventArgs e) { Point p = new Point(e.X, e.Y); OnMouseMoveEx(new MouseMoveExEventArgs(p)); }
my purpose is that replace orginal MouseEventArgs class with MouseMoveExEventArgs event handler in MouseMove event and raise it when Mousemove event fire. thanksHi According to my knowledge when you want use any event of custom control,you need to assign local handler to that event ; eg. customcontrol1.MouseMoveEx+=OnMouseMoveEx; where OnMouseMoveEx and customcontrol1 are both in one class. I think, you will get how to do it. Regards, Amar
-
Hi According to my knowledge when you want use any event of custom control,you need to assign local handler to that event ; eg. customcontrol1.MouseMoveEx+=OnMouseMoveEx; where OnMouseMoveEx and customcontrol1 are both in one class. I think, you will get how to do it. Regards, Amar
-
thanks when in designer mode, double click on MouseMoveEx event in events window, it will be genererated automatically :
customcontrol1.MouseMoveEx+=OnMouseMoveEx;
but i think that the event handler doesn't know what time fire this event.Hi, Can you describe your coding flow shortly ? Eg. class customcontrol { //code of event handler } class where_you_use_customcontrol { //code of event handler } and when you want to raise that event. So my view become clear. Regards, Amar