
public Class A{ public A(){ progressbar.Style = ProgressbarStyle.Marquee; progressbar.MarqueeAnimationSpeed = 0; } public voID DoSomething(){ if(checkpasses){ progressbar.MarqueeAnimationSpeed = 100; //Do something here... progressbar.MarqueeAnimationSpeed = 0; } else //Do nothing... }} 问题是我的进度条根本不会开始移动.首先,我认为它不会自己创建一个新线程(我发现有线)所以我尝试创建一个线程,但仍然是相同的结果.什么都没发生.这是我忘记的事吗?
解决方法 您在此处“执行某些 *** 作”代码将阻止UI线程,因此在DoSomething方法完成之前,您将看不到进度条更新.那时你将动画速度设置回0.尝试将您的“在这里做一些”代码放在一个单独的线程上.该线程完成后,将动画速度设置回0.
像这样的东西:
public partial class Form1 : Form{ public Form1() { InitializeComponent(); backgrounDWorker1.DoWork += new DoWorkEventHandler(backgrounDWorker1_DoWork); backgrounDWorker1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgrounDWorker1_RunWorkerCompleted); } private voID backgrounDWorker1_RunWorkerCompleted(object sender,RunWorkerCompletedEventArgs e) { progressbar1.MarqueeAnimationSpeed = 0; progressbar1.Style = ProgressbarStyle.Blocks; progressbar1.Value = progressbar1.Minimum; } private voID backgrounDWorker1_DoWork(object sender,DoWorkEventArgs e) { DoSomething(); } private voID button1_Click(object sender,EventArgs e) { progressbar1.Style = ProgressbarStyle.Marquee; progressbar1.MarqueeAnimationSpeed = 100; backgrounDWorker1.RunWorkerAsync(); } private voID DoSomething() { Thread.Sleep(2000); }} 总结 以上是内存溢出为你收集整理的c# – 似乎无法获得动画的进度条全部内容,希望文章能够帮你解决c# – 似乎无法获得动画的进度条所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)