解决方案 »
- 出入mvc战海,各种迷惑和不解
- 如何匹配这个正则表达式
- C#中一个窗体调用另一个窗体的控件
- 在文本框内输入内容时,如何使得文本框下面的列表框内容随之变化?
- 正则表达式问题
- 关于.NET的一个问题
- [60]怎样在webform里引用word控件??
- 疑问:非托管资源dispose问题。
- Convert.ToInt16(s);int.Parse(s);和(int)s有什么区别呀?????谢了!
- listview 数据拖入 datagridview,如果获得datagridview中鼠标所在的单元格
- 请问高手们:如何调用FoxMail并附加附件
- 安装C#编写的软件提示“KB893802v2”安装程序错误
不行的..第一个就是用的这种方法..完全无效果,父容器Parent都设置了.
不可以,必须label背景透明才行啊,progressbar进度条前进的时候颜色就变了.
{
public Form1()
{
InitializeComponent(); var progressBar = new MyProgressBar()
{
Location = new Point(20, Bottom - 150),
Size = new Size(Width - 60, 50),
Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom
};
this.Controls.Add(progressBar); var timer = new Timer {Interval = 150};
timer.Tick += (s, e) => progressBar.Value = progressBar.Value%100 + 1;
timer.Start();
} private void Form1_Load(object sender, EventArgs e)
{
}
} public class MyProgressBar : ProgressBar
{
public MyProgressBar()
{
SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint, true);
} protected override void OnPaint(PaintEventArgs e)
{
Rectangle rect = ClientRectangle;
Graphics g = e.Graphics; ProgressBarRenderer.DrawHorizontalBar(g, rect);
rect.Inflate(-3, -3);
if (Value > 0)
{
var clip = new Rectangle(rect.X, rect.Y, (int) ((float) Value/Maximum*rect.Width), rect.Height);
ProgressBarRenderer.DrawHorizontalChunks(g, clip);
} string text = Value + "%";
using (var font = new Font(FontFamily.GenericSerif, 20))
{
SizeF sz = g.MeasureString(text, font);
var location = new PointF(rect.Width/2 - sz.Width/2, rect.Height/2 - sz.Height/2 + 2);
g.DrawString(text, font, Brushes.Red, location);
}
}
}