码迷,mamicode.com
首页 > Windows程序 > 详细

c# 自定义控件

时间:2017-11-12 23:09:23      阅读:297      评论:0      收藏:0      [点我收藏+]

标签:默认   添加引用   orm   绘制   draw   颜色   pre   property   ted   

 

  在自定义控件的过程中,可以优先考虑从现有的控件中进行派生,并添加所需要的功能。(制作效果,当鼠标指针移动到控件时,控件颜色就会发生改变,当鼠标离开时就恢复原来的颜色)

  首先添加一个新的类。

技术分享

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using System.Windows.Forms.Design;


namespace Contol颜色
{
    //[DefaultProperty("HoverColor")]
    //[Designer(typeof(ColourControl))]
    public class ColourControl : Control
    {
        #region 
        //重写该属性以设置控件默认大小
        protected override System.Drawing.Size DefaultSize
        {
            get
            {
                return new Size(100, 100);
            }
        }
        //当鼠标指针移动到控件区域内时的颜色
        public Color HoverColor
        {
            get { return M_hoverColor; }
            set
            {
                M_hoverColor = value;
                Invalidate();//强制重新绘制
            }
        }
        #endregion

        #region
        //该变量标识鼠标指针是否已经进入控件的区域
        private bool isMouseEnter = false;
        //当鼠标进入控件区域后的背景颜色
        Color M_hoverColor;
        #endregion

        #region 方法
        protected override void OnMouseEnter(EventArgs e)
        {
            //标识鼠标指正已经进入区域
            isMouseEnter = true;
            //强制重新绘制
            Invalidate();
            base.OnMouseEnter(e);
        }
        protected override void OnMouseLeave(EventArgs e)
        {
            //标识鼠标指针是否已经离开控件
            isMouseEnter = false;
            //强制重新绘制
            Invalidate();
            base.OnMouseLeave(e);
        }
        protected override void OnPaint(PaintEventArgs e)
        {
            //用于填充控件背景区域的画刷
            SolidBrush brush = new SolidBrush(BackColor);
            if (isMouseEnter)
            {
                brush.Color = HoverColor;
            }
            e.Graphics.FillRectangle(brush, e.ClipRectangle);
            //释放画刷资源
            brush.Dispose();
        }
        #endregion
    }
}

   在解决方案资源管理器窗口中设置:引用---->添加引用,勾选

技术分享

  点击重新生成项目。找到

技术分享

技术分享

技术分享

技术分享

技术分享

 

c# 自定义控件

标签:默认   添加引用   orm   绘制   draw   颜色   pre   property   ted   

原文地址:http://www.cnblogs.com/hjxzjp/p/7823292.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!