zoukankan      html  css  js  c++  java
  • c# 自定义控件

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

      首先添加一个新的类。

    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
        }
    }

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

      点击重新生成项目。找到

  • 相关阅读:
    辨异 —— 冠词(定冠词、不定冠词、零冠词)
    辨异 —— 冠词(定冠词、不定冠词、零冠词)
    dot 语法全介绍
    dot 语法全介绍
    图像的简单认识
    图像的简单认识
    向量点乘(内积)和叉乘(外积、向量积)概念及几何意义解读
    图的重要性质
    Android下载文件提示文件不存在。。。 java.io.FileNotFoundException
    Java程序猿的JavaScript学习笔记(5——prototype和Object内置方法)
  • 原文地址:https://www.cnblogs.com/hjxzjp/p/7823292.html
Copyright © 2011-2022 走看看