| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 | using OTSIncAReportApp.SysMgrTools;using System;using System.Collections;using System.Drawing;using System.Windows.Forms;namespace OTSIncAReportMailInterface{    /// <summary>    /// 进度条显示窗体    /// </summary>    public partial class Frm_UserProgress : Form    {        #region 全局变量        private MyProgressBar m_mpbr;        private Label m_l;        #endregion        #region 构造函数及窗体加载        public Frm_UserProgress()        {            InitializeComponent();        }        private void Frm_UserProgress_SizeChanged(object sender, EventArgs e)        {            //progressBar1.Width = this.Width;        }        private void Frm_UserProgress_Load(object sender, EventArgs e)        {            m_mpbr = new MyProgressBar();            m_mpbr.Parent = progressBar1;            progressBar1.Width = this.Width;            progressBar1.Height = this.Height;            m_mpbr.Width = progressBar1.Width;            m_mpbr.Height = progressBar1.Height;            m_l = new Label();            m_l.Parent = m_mpbr;            m_l.BackColor = Color.Transparent;            m_l.ForeColor = Color.SteelBlue;            m_l.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;            m_l.Width = m_mpbr.Width;            m_l.Height = m_mpbr.Height;        }        #endregion        #region 自定义方法封装        /// <summary>        /// 当前进度条,显示的进度值,及进度条上显示的文本信息        /// </summary>        /// <param name="in_value"></param>        /// <param name="in_str"></param>        public void SetProgressValueAndText(int in_value, string in_str)        {            if (m_mpbr != null)            {                string str1 = "当前进度";                Language lan = new Language();                Hashtable table = lan.GetNameTable("Frm_UserProgress");                str1 = table["str1"].ToString();                m_mpbr.Value = in_value;                m_l.Text = str1 + m_mpbr.Value.ToString() + "%" + "(" + in_str + ")";                this.Refresh();            }        }        /// <summary>        /// 获取当前进度条的当前进度值        /// </summary>        /// <returns></returns>        public int GetProgressValue()        {            return m_mpbr.Value;        }        #endregion    }    #region 封装ProgressBar进度条类    public class MyProgressBar : ProgressBar    {        public MyProgressBar()        {            base.SetStyle(ControlStyles.UserPaint, true);        }        protected override void OnPaint(PaintEventArgs e)        {            SolidBrush brush = null;            Rectangle bounds = new Rectangle(0, 0, base.Width, base.Height);            bounds.Height -= 4;            bounds.Width = ((int)(bounds.Width * (((double)base.Value) / ((double)base.Maximum)))) - 4;            brush = new SolidBrush(Color.SkyBlue);            e.Graphics.FillRectangle(brush, 2, 2, bounds.Width, bounds.Height);            ControlPaint.DrawBorder(e.Graphics,                    this.ClientRectangle,                    Color.LightSteelBlue,                    1,                    ButtonBorderStyle.Solid,                    Color.LightSteelBlue,                    1,                    ButtonBorderStyle.Solid,                    Color.LightSteelBlue,                    1,                    ButtonBorderStyle.Solid,                    Color.LightSteelBlue,                    1,                    ButtonBorderStyle.Solid);        }        #endregion    }}
 |