C# 里想要点了按钮后出现一个显示在处理的图片或进度条,怎么写? 15

我的c#点了按钮后可以成功处理任务。但是点了按钮后界面不太好看,显示无响应那种画面。一直到处理完了才可以再动。如果想要在点了按钮后显示一个GIF动图,或者进度条,任务结束... 我的c#点了按钮后可以成功处理任务。但是点了按钮后界面不太好看,显示无响应那种画面。一直到处理完了才可以再动。如果想要在点了按钮后显示一个GIF动图,或者进度条,任务结束后图片或进度条消失,需要怎样写?

private void button1_Click(object sender, RoutedEventArgs e)
{
.........
}
展开
 我来答
szqaly
2015-10-03 · TA获得超过1745个赞
知道大有可为答主
回答量:2107
采纳率:77%
帮助的人:1535万
展开全部
//把处理代码放在另一个线程中运行就不会卡住当前窗口了。
//在窗口添加一个backgroundWorker组件,可用于多线程处理。如下面代码:
private void button1_Click(object sender, EventArgs e) {
backgroundWorker1.RunWorkerAsync(); //启动线程
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)//线程中运行的事务
{
for (int i = 0; i < 9999; i++) Console.WriteLine(i);
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)//事务运行完成时
{
Console.WriteLine("完成");
}
追问
我是在用WPF,工具栏里的backgroundWorker组件是灰色的不可用
追答
//再试试另一种线程处理方法,wpf没用过,也不清楚行不行
public delegate void deCompleteThread(); //委托
private void treadControlPropertys()//处理窗体控件属性
{
pictureBox1.Hide();
}
private void button1_Click(object sender, EventArgs e) {
//启动线程
pictureBox1.Show(); //进度动态图片
System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(treat));
t.Start();
}
private void treat()//线程中运行的事务
{
for (int i = 0; i < 9999; i++) Console.WriteLine(i);
Invoke(new deCompleteThread(treadControlPropertys)); //由于在另一个线程中无法直接访问窗体控件
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式