標籤:預設 添加引用 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# 自訂控制項