首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

窗体中重写事件步骤和窗体自带的事件的区别

2014-05-24 
窗体中重写事件方法和窗体自带的事件的区别?重写:protected override void OnMouseMove(MouseEventArgs e)

窗体中重写事件方法和窗体自带的事件的区别?
重写:
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);

热点排行