주니봉
  • progress bar 색 변경
    2015년 09월 01일 14시 48분 16초에 업로드 된 글입니다.
    작성자: 봉주니
    using System;
    using System.Windows.Forms;
    using System.Drawing;
    
    public class ProgressBarEx : ProgressBar
    {
        private SolidBrush brush = null;
    
        public ProgressBarEx()
        {
            this.SetStyle(ControlStyles.UserPaint, true);
        }
    
        protected override void OnPaint(PaintEventArgs e)
        {
            if (brush == null || brush.Color != this.ForeColor)
                brush = new SolidBrush(this.ForeColor);
    
            Rectangle rec = new Rectangle(0, 0, this.Width, this.Height);
            if (ProgressBarRenderer.IsSupported)
                ProgressBarRenderer.DrawHorizontalBar(e.Graphics, rec);
            rec.Width = (int)(rec.Width * ((double)Value / Maximum)) - 4;
            rec.Height = rec.Height - 4;
            e.Graphics.FillRectangle(brush, 2, 2, rec.Width, rec.Height);
        }
    }

    progressbar를 상속받는 새로운 class 를 하나 만들어주고
    progressbar 처럼 그냥 사용하면 된다.
    마지막에 controls.add 해주면 바뀐걸 볼 수 있다.


    반응형

    'C#' 카테고리의 다른 글

    C# 자료형 변환 Convert.ToDouble 과 double.parse 의 차이  (0) 2015.09.22
    텍스트박스 크기조절  (0) 2015.09.21
    rgb, hex 값 변경  (0) 2015.09.07
    Brushes Color 색깔종류  (0) 2015.08.27
    날짜로 된 문자열 DateTime 형식으로  (0) 2015.08.27
    댓글