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

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

      点击重新生成项目。找到

  • 相关阅读:
    ffmpeg文档22-混合器(复用器)
    ffmpeg文档21-分离器
    ffmpeg文档20-格式选项
    ffmpeg文档19-比特流滤镜
    ffmpeg文档18-字幕编码器
    ffmpeg文档17-视频编码器
    ffmpeg文档16-音频编码器
    python 学习笔记,selenium 自动化测试 更新开始
    python 遇到 'unicode' object is not callable 错误
    字符串函数汇总
  • 原文地址:https://www.cnblogs.com/hjxzjp/p/7823292.html
Copyright © 2011-2022 走看看