天天看點

WinForm——Button總結

常用屬性

執行個體總結

如何動态建立Button控件。

想要動态建立控件,首先要建立控件類的對象,然後使用系統Controls對象的Add方法将控件注冊到窗體中。例:

private void Form1_MouseDown(object sender,MouseEventArgs e)

{

      Button btn=new Button();

btn.Left=e.X;

btn.Top=e.Y;

btn.Name=”Button”+intCount.ToString();

btn.Text=”Button:+intCount.ToString();

this.Controls.Add(btn);

intCount++;

}

實作對Button按鈕的重繪

建立使用者控件,命名為ControlButton。然後将繼承改為Button

 public partial class ControlButton : Button

   {

       public ControlButton()

       {

           this.SetStyle(

               ControlStyles.UserPaint |

               ControlStyles.AllPaintingInWmPaint |

               ControlStyles.OptimizedDoubleBuffer |

               ControlStyles.ResizeRedraw |

               ControlStyles.SupportsTransparentBackColor, true);

           FlatStyle = FlatStyle.Flat;

           FlatAppearance.BorderSize = 1;

           FlatAppearance.BorderColor = Color.FromArgb(102, 102, 102);

           FlatAppearance.MouseOverBackColor = Color.FromArgb(102, 102, 102);

           FlatAppearance.MouseDownBackColor = Color.FromArgb(150, 150, 150);

       }

       private bool _isClicked = false;

       public bool IsClicked

           get { return _isClicked; }

           set { _isClicked = value; }

       private bool _inClient = false;

       private bool _mouseDown = false;

       private bool _enableClicked = false;

       [Category("自定義屬性"), Description("啟用按下狀态")]

       public bool EnableClicked

           get { return _enableClicked; }

           set { _enableClicked = value; }

       private Color _fontColor = Color.Gainsboro;

       [Category("自定義屬性"), Description("按下狀态字型顔色")]

       public Color ClickedForeColor

           get { return _fontColor; }

           set { _fontColor = value; }

       private Size _imgSize;

       [Category("自定義屬性"), Description("圖檔尺寸")]

       public Size ImageSize

           get { return _imgSize; }

           set

           {

               _imgSize = value;

               Invalidate();

           }

       private Image _enterImage = null;

       [Category("自定義屬性"), Description("滑鼠懸浮時圖檔")]

       public Image EnterImage

           get { return _enterImage; }

               _enterImage = value;

       private Image _downImage = null;

       [Category("自定義屬性"), Description("滑鼠按下時圖檔")]

       public Image DownImage

           get { return _downImage; }

           set { _downImage = value; }

       protected override void OnMouseDown(MouseEventArgs mevent)

           IsClicked = !IsClicked;

           _mouseDown = true;

           base.OnMouseDown(mevent);

       protected override void OnMouseUp(MouseEventArgs mevent)

           _mouseDown = false;

           base.OnMouseUp(mevent);

       protected override void OnMouseEnter(EventArgs e)

           _inClient = true;

           base.OnMouseEnter(e);

       protected override void OnMouseLeave(EventArgs e)

           _inClient = false;

           base.OnMouseLeave(e);

生成成功後,在工具箱裡面就可以看到。

WinForm——Button總結

代碼參照:

https://blog.csdn.net/qq_33324878/article/details/81065310