Stu*_*wig 135 c# animated-gif winforms
我有一个表单显示进度消息,因为一个相当长的过程运行.这是对Web服务的调用,因此我无法真正显示进度条上的百分比完整数字.(我不特别喜欢进度条的Marquee属性)
我想展示一个动画GIF,让过程感受到一些活动(例如,从一台计算机飞到另一台计算机的文件,如Windows复制过程).
你怎么做到这一点?
小智 11
我有同样的问题.整个表单(包括gif)由于在后台运行的长时间操作而停止重绘.这是我如何解决这个问题.
private void MyThreadRoutine()
{
this.Invoke(this.ShowProgressGifDelegate);
//your long running process
System.Threading.Thread.Sleep(5000);
this.Invoke(this.HideProgressGifDelegate);
}
private void button1_Click(object sender, EventArgs e)
{
ThreadStart myThreadStart = new ThreadStart(MyThreadRoutine);
Thread myThread = new Thread(myThreadStart);
myThread.Start();
}
Run Code Online (Sandbox Code Playgroud)
我只是创建了另一个线程来负责这个操作.感谢这个初始形式继续重绘而没有问题(包括我的gif工作).ShowProgressGifDelegate和HideProgressGifDelegate是表单的委托,它将pictureBox的可见属性设置为gif为true/false.
请注意,在Windows中,您传统上不使用动画Gif,但使用AVI动画:只有一个Windows本机控件才能显示它们.甚至还有将GIF动画转换为AVI的工具(反之亦然).
| 归档时间: |
|
| 查看次数: |
255658 次 |
| 最近记录: |