问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求winform 加载窗体时弹出另一个窗体并显示进度条的源码

发布网友 发布时间:2022-04-22 13:59

我来回答

4个回答

热心网友 时间:2023-11-07 17:52

//frmA: 源窗体
//------------------------------------------
//引用
using System.Threading;
public frmA()
{
InitializeComponent();

worker = new BackgroundWorker();
worker.DoWork += new DoWorkEventHandler(worker_DoWork);
worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
}

/// <summary>
/// 异步 开始事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void worker_DoWork(object sender, DoWorkEventArgs e)
{
//需要执行的代码
}

/// <summary>
/// 事件: 异步执行完成后
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
MessageBox.Show("执行完成。", "run", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

//点击一个按钮后开始执行
private void btnA_Click(object sender, EventArgs e)
{
//代码
......

//异步执行开始
worker.RunWorkerAsync(tableName);

//显示进度窗体
frmB frm = new frmB(this.worker);
frm.StartPosition = FormStartPosition.CenterScreen;
frm.ShowDialog(this);
}

frmB:
//里面放了一个loading.gif图片显示进度
------------------------------------------------------------
using System;
using System.ComponentModel;
using System.Windows.Forms;

namespace test
{
public partial class frmB: Form
{
public frmB(BackgroundWorker worker)
{
InitializeComponent();
worker.ProgressChanged +=new ProgressChangedEventHandler(worker_ProgressChanged);
worker.RunWorkerCompleted +=new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
}

void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
this.Close();
}

void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
//lblStatus.Text = "";
}

//工作完成后执行的事件
public void OnProcessCompleted(object sender, EventArgs e)
{
this.Close();
}

}
另外,站长团上有产品团购,便宜有保证

热心网友 时间:2023-11-07 17:52

大致做法:
private void ShowWaitting()
{
//frmWaitting相当于你题目中说的B窗口
frmWaitting tt = new frmWaitting();//这个是显示滚动条的窗口,里面做好了Timer和滚动条,
tt.ShowDialog();
tt.Dispose();
}
private void RefreshUI()//这是刷新界面,即你题目中的点击A窗口的按钮
{
Thread tGetData = new Thread(new ThreadStart(ShowWaitting));
tGetData.Name = "Waitting";
tGetData.Start();
//这里就是你要做的数据操作
//你的操作
//数据操作完毕
tGetData.Abort();
}

热心网友 时间:2023-11-07 17:53

进度条可以多次循环还是只能循环一次呀?多次循环就好办了。之间在B里添加属性(滚动条的value),用时间控件递加,A运行完后,再在A里面把B关了。

热心网友 时间:2023-11-07 17:54

多线程 + New Form Show + progressbar,这几种技术的组合,现成代码是没有的,你需要在网上分别找些例子阅读。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么是Medical Literature Analysis and Retrieval System (NLM)的缩 ... 医学工作者的因特网内容简介 2002年的一篇文章英文摘要被《医学文献联机数据库》(MEDLINE)收录,是否... 医学器具medline啥意思 民国市与县的关系是怎样的,市与县分别又是什么? 历代兵制中国民国兵制 冰箱运行时有水流声怎么回事? ud牛郎眼影真假判断 爆闪/没有平替❌ 牛郎眼影真假鉴别方法 鉴别❗️衰败城市牛郎眼影真假,粉质肉眼差距 Vs新建项目中只有wpf应用没有winform c# 在vs2005里编写的winform程序中,如何将一个窗口中的变量值传到另一个窗口中去 C# winForm 将datagridview 控件中的数据(大约有六千行甚至更多),导入到listview中显示时,卡死了。 怎么提高大数据插入 c#winform 戴安 c# 如何提高大数据量查询速度 .NET WinForm 大数据导出数据到Excel? winform 插入大数据 窗口假死 数据可视化软件有哪些? 请教visual studio 2005用C#编写winform的时候,设计窗口总是自动跳成网页显示代码而不是设计的可视化界面 我今天刚刚申请完了,请什么时候能收到! 大数据可视化分析工具去哪找 404 Not Found 关于winform DataGridView加载大量数据的棘手问题 c# 如何快速处理大数据量得查询及显示?? .net winform 窗体中各控件都是包含大数据量数据。 您觉得用C#进行可视化操作实现起来难点在哪些方面? 从四川成都到拉萨 坐飞机要几个小时 刚做飞机到拉萨,我要注意什么。 现在乘座西宁至拉萨的飞机需做核酸检测吗? 坐飞机到拉萨要注意什么 c#大数据 一般是分库处理还是多表处理 C# winfrom datagridview数据获取 winform 里datagridview显示的文字样式 安卓是否可以安装微信分身版 安卓微信分身怎么弄怎么下载两个 请问怎么装微信分身版 安卓手机怎么安装微信分身版,需要绑定什么公众号 苹果手机下载东西要信任在哪里 苹果手机10.3信任在哪打开? 安全吗,微信人工投票安全/会不会被查 steam登录次数过多 需要等多久 steam手机版短期内来自您网络的失败登录过多 完美世界竞技平台为什么进不去 短期内网络失败登录过多是什么情况? steam网页登不上,短期内来自您网络的失败登录过多? steam短期内失败登录过多请稍后再试 短期内来自您网络的失败登录过多要多久 珍珠奶茶里面的珍珠怎么做的? 莆田移动4G校园套餐详情 福建移动校园48套餐还有必要办寒暑包和非常假期吗