gpt4 book ai didi

c# - ProgressBar 绘制方法?

转载 作者:行者123 更新时间:2023-11-30 19:45:24 25 4
gpt4 key购买 nike

好的,这是我在进度条上绘制的代码:

private void timer2_Tick(object sender, EventArgs e)
{
int percent = progressBar1.Value;
progressBar1.CreateGraphics().DrawString(percent.ToString() + "%", new Font("Arial", (float)8.25, FontStyle.Regular), Brushes.Black, new PointF(progressBar1.Width / 2 - 10, progressBar1.Height / 2 - 7));
progressBar1.Increment(+1);
if (progressBar1.Value >= 99)
{
timer2.Stop();
this.Close();
}

好的,所以我在中间画了一个标签来显示进度条的值。出于某种原因,它一直在闪烁……消失又出现。所以,有人告诉我取出那段代码并将其放入 paint 方法中......我没有看到它。有没有更简单的方法?

最佳答案

这是一个应该有效的代码(我选择了选项 3,创建一个子类并覆盖 WndProc 来处理绘制消息:

public class Prog : ProgressBar
{
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);

if (m.Msg == 0x000F)
{
var flags = TextFormatFlags.VerticalCenter |
TextFormatFlags.HorizontalCenter |
TextFormatFlags.SingleLine |
TextFormatFlags.WordEllipsis;

TextRenderer.DrawText(CreateGraphics(),
((float)this.Value/this.Maximum*100) + "%",
Font,
new Rectangle(0, 0, this.Width, this.Height),
Color.Black,
flags);
}
}
}

关于c# - ProgressBar 绘制方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10643158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com