这篇文章向您展示了如何在c#.net Windows窗体应用程序中创建一个等待窗体对话框。
创建一个新表单,然后输入您的表单名称为frmWaitForm。接下来,将Label,Progress Bar控件从Visual Studio工具箱中拖到winform中,然后可以如下所示布置ui设计。

我们将使用此表单显示c#进度栏,请等待。

接下来,创建一个名为Form1的新表单,该表单是主表单。要播放演示,可以将Visual Studio工具箱中的ListViewButton控件拖到主窗体中,然后如下图所示布置主窗体。

创建Worker属性以处理Windows窗体c#中的加载程序到  frmWaiForm。

  1. public Action Worker { get; set; }

行动是委托类型,这是一样的Func键代表除了动作委托不返回值。换句话说,可以将Action委托与具有void返回类型的方法一起使用。

frmWaitForm构造函数中添加worker参数,就可以使用以下c#代码来初始化Worker属性。

  1. public frmWaitForm(Action worker)
  2. {
  3. InitializeComponent();
  4. if (worker == null)
  5. throw new ArgumentNullException();
  6. Worker = worker;
  7. }

并且不要忘记重写OnLoad方法,该方法允许您在关闭表单时启动新线程。

  1. protected override void OnLoad(EventArgs e)
  2. {
  3. base.OnLoad(e);
  4. //Start new thread to run wait form dialog
  5. Task.Factory.StartNew(Worker).ContinueWith(t => { this.Close(); }, TaskScheduler.FromCurrentSynchronizationContext());
  6. }

最后,打开Form1,然后创建SaveData方法。这是一种模拟数据存储的方法,您可以使用Thread.Sleep方法来延迟循环

  1. void SaveData()
  2. {
  3. //Add code to process your data
  4. for (int i = 0; i <= 500; i++)
  5. Thread.Sleep(10); //Simulator
  6. }

将按钮单击事件处理程序添加到“保存”按钮,使您可以在Windows窗体C#中打开加载程序。

  1. private void button1_Click(object sender, EventArgs e)
  2. {
  3. //Open wait form dialog
  4. using (frmWaitForm frm = new frmWaitForm(SaveData))
  5. {
  6. frm.ShowDialog(this);
  7. }
  8. }

通过c#示例项目,您可以学习如何创建c#进度对话框,然后用于创建c#加载屏幕或c#启动屏幕。

C#中的“等待窗体”对话框的更多相关文章

  1. 【C#】分享带等待窗体的任务执行器一枚

    -------------201504161039更新------------- 更新内容: IWaitForm接口删除System.Windows.Forms.DialogResult Dialog ...

  2. 【代码笔记】iOS-在导航栏中显示等待对话框

    一,效果图. 二,代码. ViewController.m #import "ViewController.h" @interface ViewController () @end ...

  3. 测试脚本中的等待方法 alter对话框处理

    测试脚本中的等待方法 等待是为了使脚本执行更加稳定 1. 常用的休眠方式:time模块的sleep方法 2. selenium模块中的等待方法 等待查找5s 查找不到就报错 对登录测试py进行修改 a ...

  4. .net开发笔记(十八) winform中的等待框

    winform中很多任务是需要在后台线程(或类似)中完成的,也就是说,经常容易涉及到UI界面与后台工作线程之间的交互.比如UI界面控制后台工作的执行(启动.暂停.停止等),后台工作进度在UI界面上的显 ...

  5. Devexpress 等待窗体

    加载窗体以及等待窗体 程序加载时,需要等待加载完成后在显示 窗体显示顺序 1. 给用户看的等待窗体 2. 加载完成后的主窗体 代码如下: 1. 等待窗体代码 #region using using S ...

  6. 【C#】带等待窗体的BackgroundWorker

    ---------------201504170911更新--------------- 更新内容:删除bgwUI新增的Start方法,改为通过new修饰符+可选参数的方式同时覆盖基类(Backgro ...

  7. c# winForm 等待窗体的实现

    最近在做一个项目,需要用到等待窗体,在DevExpress下面有SplashScreen控件可以使用,同时也有ProgressIndicator控件能用,但是如果没有用Dev开发的话,我们就需要自定义 ...

  8. C#关于等待窗体(转)

    c#.net 中如果想在主窗口A里点击打开新窗口B(因为要数据库操作,Bload需一小段时间)之前弹出带有滚动条等待子窗口C来提示用户没有死机,应该怎么做?我用多线程打开了c窗口,但是问题:1.C窗口 ...

  9. 《MFC dialog中加入OpenGL窗体》

    <MFC dialog中加入OpenGL窗体> 最近学习了如何在MFC对话框程序中加入OpenGL窗体的方法,在这里将自己的实现过程归纳一下. 步骤零: 加入PictureControl控 ...

随机推荐

  1. 剑指 Offer 30. 包含min函数的栈

    剑指 Offer 30. 包含min函数的栈 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). 示例 ...

  2. OpenFaaS实战之八:自制模板(maven+jdk8)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  3. Python爬虫学习——1.爬虫入门

    HTTP和HTTPS HTTP协议(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收 HTML页面的方法. HTTPS(Hypertext Transfer ...

  4. Python函数调用中的值传递和引用传递问题

    这一问题O' Reilly出版的"Learning Python" 2nd Edition的 13.4 节有专门论述,对于不可变(immutabe)对象,函数参数(这里是x和y)只 ...

  5. Nginx配置websocket的安全协议wss

    //nginx配置wss访问方式 map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream webso ...

  6. Java基础技术基础面试【笔记】

    Java基础技术基础面试[笔记] String.StringBuilder以及StringBuffer三者之间的区别? 三者的区别可以从可变性,线程安全性,性能这三个部分进行说明 可变性 从可变性来说 ...

  7. Sqli-Labs less26-28a

    less-26 从第26关开始,我的sqli-labs就在docker上运行了,因为windows中阿帕奇对空格的转义有问题 通过源码可以看到有很多过滤,包括空格 or和and. 方法: or可以用| ...

  8. Spring Boot 项目集成Redis

    目录 集成方式 使用Jedis 使用spring-data-redis Redis的安装 绑定配置 获取Redis客户端 Redis工具的编写 使用 集成方式 使用Jedis Jedis是Redis官 ...

  9. Centos7上yum安装mongodb4-2

    vim /etc/yum.repos.d/mongodb-org-4.2.repo [mongodb-org-4.2] name=MongoDB Repository baseurl=https:// ...

  10. javaWeb常用面试题

    JDBC JDBC访问数据库的基本步骤是什么? 加载驱动 通过DriverManager对象获取连接对象Connection 通过连接对象获取会话,有2种方式Statement.PreparedSta ...