我自己想做一个按钮,想改变其边框的颜色,但是找了好多资料都没有找到,希望各位高手能帮助小弟.

解决方案 »

  1.   

    /// <summary>
    /// 平坦的Button
    /// </summary>
    public class FlatButton:Button
    {
    //边界色,缺省用灰色
    private Color _borderColor=Color.Gray; /// <summary>
    /// 缺省构造器
    /// </summary>
    public FlatButton()
    {
    SetStyle(ControlStyles.ResizeRedraw,true);
    this.FlatStyle=FlatStyle.Flat;
    this.Paint+=new PaintEventHandler(_Paint);
    }
    /// <summary>
    /// 获取一个值,该值指示控件是否应显示聚焦框,此处重载,禁止显示聚焦框
    /// </summary>
    protected override bool ShowFocusCues
    {
    get
    {
    return false;
    }
    }

    /// <summary>
    /// 边界色
    /// </summary>
    public Color BorderColor
    {
    set 
    {
    if(value!=_borderColor)
    {
    _borderColor=value;
    Invalidate();
    }
    }
    get
    {
    return _borderColor;
    }
    }

    /// <summary>
    /// 重绘处理事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void _Paint(object sender,System.Windows.Forms.PaintEventArgs e)
    {
    //e.Graphics.Clear(BackColor);

    e.Graphics.DrawRectangle(new Pen(_borderColor),0,0,Width-1,Height-1);
    }
     
    }