zoukankan      html  css  js  c++  java
  • C#中的“等待窗体”对话框

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

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

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

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

    public Action Worker { get; set; }

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

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

    public frmWaitForm(Action worker)
    {
        InitializeComponent();
        if (worker == null)
            throw new ArgumentNullException();
        Worker = worker;
    }

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

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

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

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

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

    private void button1_Click(object sender, EventArgs e)
    {
        //Open wait form dialog
        using (frmWaitForm frm = new frmWaitForm(SaveData))
        {
            frm.ShowDialog(this);
        }
    }

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

  • 相关阅读:
    查看whl包名是否满足系统的条件的命令,以此解决whl包出现“is not a supported wheel on this platform”错误提示的问题
    C++-文件输入输出流
    C++-PTA-6-7-1 地下迷宫探索
    C++-PTA-时钟模拟
    数据结构-深入虎穴-树的应用
    数据结构-二叉树-(先序|后序)+中序求(后序|先序)笔记
    C++-课后习题-日期类DATE时间类Time
    C++-课后习题-学生类
    数据结构-串数组广义表笔记
    数据结构-PTA-银行业务队列简单模拟
  • 原文地址:https://www.cnblogs.com/liessay/p/12767861.html
Copyright © 2011-2022 走看看