winform 加载窗体时弹出另一个窗体并显示进度条的源码
来源:互联网 发布:有人转让我的淘宝店铺 编辑:程序博客网 时间:2024/05/13 18:26
//frmA: 源窗体
//------------------------------------------
//引用
using
System.Threading;
BackgroundWorker worker;
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)
{
//需要执行的代码
Thread.Sleep(5000);
//让进程上卡5秒钟
}
/// <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_DoWork 事件中执行
//异步执行开始
worker.RunWorkerAsync();
//显示进度窗体
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();
}
}
二:在弹出的窗体里显示backgroundWorker的进度
1, backgroundWorker1的WorkerReportsProgress属性设置为
true
2, 写如下事件
private
void
backgroundWorker1_ProgressChanged(
object
sender, ProgressChangedEventArgs e)
{
progressBar.Value = e.ProgressPercentage;
}
progressBar是进度条是你定义的变量..可以写在后台执行里面控制
3 .在后台执行里面
backgroundWorker1.ReportProgress(50);
其中50就是进度调的百分比.
比如一个循环循环100次
没次backgroundWorker1.ReportProgress(循环次数);
那么效果出来 。。 哈哈
0 0
- winform 加载窗体时弹出另一个窗体并显示进度条的源码
- 加载窗体显示一个进度条的实现
- WPF用ShowDialog()弹出窗体时控制该窗体的显示位置,并传值回父窗体
- Winform 弹出窗体 - 显示特效
- WinForm中一个窗体调用另一个窗体的控件和事件的方法(附带源码)
- C# WinForm窗体的TopMost属性设置为true时,多次点击窗体弹出事件,只会弹出一个窗体
- 解决winform中mdi子窗体加载时显示最大化最小化按钮的方法
- WinForm中双击dataGridView的一行将其显示到另一个窗体的控件中
- 加载弹出窗体
- C#退出当前窗体,显示另一个窗体
- 【C#】弹出窗体时加载数据库中对应的信息
- 主窗体1显示另一个窗体2时如何让窗体2也在任务栏显示
- winform子窗体加载父窗体事件
- c# 弹出窗体的显示位置设定
- WinForm窗体显示和窗体间传值总结
- WinForm窗体显示和窗体间传值总结
- WinForm窗体显示和窗体间传值
- WinForm窗体显示和窗体间传值
- 笔试题(一)
- DFSClient技术内幕(数据的写入--OutputStream的初始化)
- DFSClient技术内幕(写入数据——管道的建立)
- GIT 5 冲突解决2
- FatMouse' Trade
- winform 加载窗体时弹出另一个窗体并显示进度条的源码
- DFSClient技术内幕(写入数据——数据写入过程)
- 嵌入式开发基础笔记
- 创建透明窗口
- DataNode内幕(一):数据存储和它的小伙伴们
- 判断连通图(并查集 )
- UML之类图
- OpenGL: 一个简单的例子
- unity3d学习笔记(二十)--利用JSON读取和保存游戏数据