C#进度条怎么用 / C#progressBar的用法

 我来答
低调的神回复
2018-06-28 · TA获得超过1.8万个赞
知道大有可为答主
回答量:9065
采纳率:90%
帮助的人:1729万
展开全部
打开Microsoft Visual Studio 2010, 新建名字为【进度条】的程序。
在新程序界面上放置合适的控件:包括,
日志输出文本框控件;
用于输入进度条长度的输入框;
3个进度条的控制按钮,可以分别开始、暂停或者停止进度条的进度;
添加一个timer控件。
设置timer控件属性为间隔100毫秒,启用状态为停止。

添加按钮【开始】的代码
设置进度条的最小值是0,最大值是用户输入的数值,当前进度为0;
设置timer开始运行。

添加按钮【暂停/继续】的代码
如果timer状态为启用,则停止timer;
如果timer状态为停止,则重新开始timer。

添加按钮【停止】的代码
停止timer的运行,并把进度条的当前值归零。

设置timer的代码
如果当前的进度小于进度条的长度,则自动加一。
如果当前的进度等于进度条的最大值,则停止timer的运行。

设置日志输出类
可以在文本框中输入过程日志。

生成exe文件进行测试

在进度条长度框中输入100,点击【开始】,进度条会持续前进。

点击【暂停】,进度条会停止前进,【暂停】按钮上的文字会显示为【继续】。

再点击【继续】,进度条会继续进行。

当进度条前进到最大值后,会自动停止。

点击按钮【停止】,会重启进度条
shuibiyy
2016-09-14 · TA获得超过1724个赞
知道小有建树答主
回答量:446
采纳率:100%
帮助的人:143万
展开全部
namespace ProgressBar
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

DateTime dt; //记时
private void btnStart_Click(object sender, EventArgs e)
{
Thread myThread = new Thread(DoData);
myThread.IsBackground = true;
myThread.Start(int.Parse(txtWhileNumber.Text)); //线程开始
dt = DateTime.Now; //开始记录当前时间
}

private delegate void DoDataDelegate(object number);
/// <summary>
/// 进行循环
/// </summary>
/// <param name="number"></param>
private void DoData(object number)
{
if (progressBar1.InvokeRequired)
{
DoDataDelegate d = DoData;
progressBar1.Invoke(d, number);
}
else
{
progressBar1.Maximum = (int)number;
for (int i = 0; i < (int)number; i++)
{
progressBar1.Value = i;
Application.DoEvents();
}
MessageBox.Show(DateTime.Now.Subtract(dt).ToString()); //循环结束截止时间
}
}

private void btnClear_Click(object sender, EventArgs e)
{
progressBar1.Value = 0;
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式