WinForm——Button總結

語言: CN / TW / HK
  1. 常用屬性
  2. 實例總結

  3. 如何動態創建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; }

set

{

_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);

}

}

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

代碼參照:http://blog.csdn.net/qq_33324878/article/details/81065310