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#启动屏幕。

posted @ 2020-04-24 15:42  liessay  阅读(2593)  评论(0编辑  收藏  举报