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#啟動屏幕。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM