progressbar怎么写呢?
想实现上图的效果
在我的“设计”界面,添加了一个 timer
public partial class frmPross : Form
{
public frmPross()
{
InitializeComponent();
timer1.Enabled = true;
progressBar1.Visible = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
if (this.progressBar1.Value < this.progressBar1.Maximum)
{
this.progressBar1.PerformStep();
}
else if (this.progressBar1.Value == this.progressBar1.Maximum)
{
this.progressBar1.Value = 0;
}
}
但在调试的时候,却是这样的效果,如下图
请问我错在哪呢? 谢谢 timer1_Tick是工作在另外一个线程里的,如果要在其中修改progressBar1的Value,要使用Control.BeginInvoke方法进行异步调用。请查阅MSDN。
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
Control.CheckForIllegalCrossThreadCalls = false;
frmPross pross = new frmPross();
pross.Show();
ThreadPool.QueueUserWorkItem(p =>
{
if (radioButton2.Checked)
{
//单元格数值计算,单元格填充
}
else{}
this.Invoke((MethodInvoker)(() => pross.Close()));
});
}
这样写,之后,又出现了如上图的 报错 回复 5楼zheng_hq的帖子
请把Visual Studio中菜单栏Debug->Exceptions弹出的对话框中Thrown一列的CheckBox全部打勾,点OK再运行你的程序,你自己就可以看到什么地方出错了。
页:
[1]