1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Drawing;
6 using System.Drawing.Drawing2D;
7 using System.Windows.Forms;
8 using System.ComponentModel;
9
10 namespace Control_list
11 {
12 public class MyButton:Button
13 {
14 Rectangle r;
15 private Brush _myBrush = null;
16 private Color _color1 = System.Drawing.Color.FromArgb(255, 255, 192);
17 private Color _color2 = System.Drawing.Color.FromArgb(0, 0, 192);
18 private Color color3;
19 private Color color4;
20
21
22 [Category("设置"),Description("渐变开始颜色")]
23 public Color color1
24 {
25 get { return _color1; }
26 set { _color1 = value; }
27 }
28
29 [Category("设置"), Description("渐变结束颜色")]
30 public Color color2
31 {
32 get { return _color2; }
33 set { _color2 = value; }
34 }
35 public void ButtoonNew()
36 {
37 r = new Rectangle(0, 0, 150, 80);
38 _myBrush = new LinearGradientBrush(r, color1, color2, LinearGradientMode.Vertical);
39 }
40 public Brush MyBrush
41 {
42 get { return _myBrush; }
43 set { _myBrush = value; }
44 }
45
46 protected override void OnResize(EventArgs e)
47 {
48 base.OnResize(e);
49 r = new Rectangle(0, 0, this.Width, this.Height);
50 MyBrush = new LinearGradientBrush(r, color1, color2, LinearGradientMode.Vertical);
51 }
52
53 protected override void OnMouseLeave(EventArgs e)
54 {
55 base.OnMouseLeave(e);
56 r = new Rectangle(0, 0, this.Width, this.Height);
57 color1 = color3;
58 color2 = color4;
59 MyBrush = new LinearGradientBrush(r, color1, color2, LinearGradientMode.Vertical);
60 }
61
62 protected override void OnMouseEnter(EventArgs e)
63 {
64 base.OnMouseEnter(e);
65 color3 = this.color1;
66 color4 = this.color2;
67 //color1 = System.Drawing.Color.FromArgb(255, 255, 136);
68 //color2 = Color.FromArgb(0, 0, 192);
69 r = new Rectangle(0, 0, this.Width, this.Height);
70 MyBrush = new LinearGradientBrush(r, color4, color3, LinearGradientMode.Vertical);
71 }
72
73 protected override void OnPaint(PaintEventArgs pevent)
74 {
75 base.OnPaint(pevent);
76 Graphics g = pevent.Graphics;
77 g.FillRectangle(MyBrush, this.ClientRectangle);
78 StringFormat strF = new StringFormat();
79 strF.Alignment = StringAlignment.Center;
80 strF.LineAlignment = StringAlignment.Center;
81 g.DrawString(this.Text, this.Font, new SolidBrush(Color.Black), this.ClientRectangle, strF);
82 }
83 }
84 }