C#进度条怎么用 / C#progressBar的用法
2个回答
展开全部
打开Microsoft Visual Studio 2010, 新建名字为【进度条】的程序。
在新程序界面上放置合适的控件:包括,
日志输出文本框控件;
用于输入进度条长度的输入框;
3个进度条的控制按钮,可以分别开始、暂停或者停止进度条的进度;
添加一个timer控件。
设置timer控件属性为间隔100毫秒,启用状态为停止。
添加按钮【开始】的代码
设置进度条的最小值是0,最大值是用户输入的数值,当前进度为0;
设置timer开始运行。
添加按钮【暂停/继续】的代码
如果timer状态为启用,则停止timer;
如果timer状态为停止,则重新开始timer。
添加按钮【停止】的代码
停止timer的运行,并把进度条的当前值归零。
设置timer的代码
如果当前的进度小于进度条的长度,则自动加一。
如果当前的进度等于进度条的最大值,则停止timer的运行。
设置日志输出类
可以在文本框中输入过程日志。
生成exe文件进行测试
在进度条长度框中输入100,点击【开始】,进度条会持续前进。
点击【暂停】,进度条会停止前进,【暂停】按钮上的文字会显示为【继续】。
再点击【继续】,进度条会继续进行。
当进度条前进到最大值后,会自动停止。
点击按钮【停止】,会重启进度条
在新程序界面上放置合适的控件:包括,
日志输出文本框控件;
用于输入进度条长度的输入框;
3个进度条的控制按钮,可以分别开始、暂停或者停止进度条的进度;
添加一个timer控件。
设置timer控件属性为间隔100毫秒,启用状态为停止。
添加按钮【开始】的代码
设置进度条的最小值是0,最大值是用户输入的数值,当前进度为0;
设置timer开始运行。
添加按钮【暂停/继续】的代码
如果timer状态为启用,则停止timer;
如果timer状态为停止,则重新开始timer。
添加按钮【停止】的代码
停止timer的运行,并把进度条的当前值归零。
设置timer的代码
如果当前的进度小于进度条的长度,则自动加一。
如果当前的进度等于进度条的最大值,则停止timer的运行。
设置日志输出类
可以在文本框中输入过程日志。
生成exe文件进行测试
在进度条长度框中输入100,点击【开始】,进度条会持续前进。
点击【暂停】,进度条会停止前进,【暂停】按钮上的文字会显示为【继续】。
再点击【继续】,进度条会继续进行。
当进度条前进到最大值后,会自动停止。
点击按钮【停止】,会重启进度条
展开全部
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;
}
}
}
{
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;
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询