窗体中重写事件方法和窗体自带的事件的区别?
重写:
protected override void OnMouseMove(MouseEventArgs e)
{
if (e.X < ClientSize.Width / 2)
if (e.Y < ClientSize.Height / 2)
this.Cursor = Cursors.Hand; //鼠标为手形图标
else
this.Cursor = Cursors.Help; //鼠标为帮助图标
else
if (e.Y < ClientSize.Height / 2)
this.Cursor = Cursors.WaitCursor; //鼠标为等待图标
else
this.Cursor = Cursors.Cross; //鼠标为十字图标
}
运行能变换鼠标的图标
我写在窗体自带的事件中,不能变换图标
private void FormMouseRegion_MouseMove(object sender, MouseEventArgs e)
{
if (e.X < ClientSize.Width / 2)
if (e.Y < ClientSize.Height / 2)
this.Cursor = Cursors.Hand; //鼠标为手形图标
else
this.Cursor = Cursors.Help; //鼠标为帮助图标
else
if (e.Y < ClientSize.Height / 2)
this.Cursor = Cursors.WaitCursor; //鼠标为等待图标
else
this.Cursor = Cursors.Cross; //鼠标为十字图标
}
}
为什么??
[解决办法]
当然是以重写的为准了。
[解决办法]
内部的做一些内部处理,因为内部可以更好的访问到控件内部的变量、属性等信息
外部的应该算是外部的交互了。
比如说Button在Click的时候,将Button控件中的border变粗、设置背景,修改字体等等。
而Click的时候要做什么任务,是外部进行控制的
[解决办法]
一般来说,你的窗体需要继承给子类用的时候,你应该重写,这个叫NVI模式。
如果你就是编写一个窗体来用,那么应该用事件。
[解决办法]
测试了一下,可以的,可能是你的事件没有注册。
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove);