using OTSIncAReportApp.SysMgrTools;
using System;
using System.Collections;
using System.Drawing;
using System.Windows.Forms;
namespace OTSIncAReportMailInterface
{
///
/// 进度条显示窗体
///
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 自定义方法封装
///
/// 当前进度条,显示的进度值,及进度条上显示的文本信息
///
///
///
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 = m_mpbr.Value.ToString() + "%" + "(" + in_str + ")";
this.Refresh();
}
}
///
/// 获取当前进度条的当前进度值
///
///
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
}
}