簡體   English   中英

在新窗口中顯示進度條

[英]Show a progress bar in new window

如何在MainWindow前面的新窗口中創建進度欄? 現在,將顯示我的prgoressbar。 但是,我只使用了.Show()函數,該窗口將不顯示任何內容。 當我使用.ShowDialog()函數時,該窗口將顯示進度條,但將無法使用。 我知道Show和ShowDialog之間的區別是Show將立即返回。 我的問題是如何使進度欄窗口正常工作?

我假設相同的邏輯適用於WPF

解決方案基於WinForm

表格1

private void button1_Click(object sender, EventArgs e)
{
    Form2 form = new Form2();
    // i have used thread pool just to simulate virtual progress from 1 to 100
    ThreadPool.QueueUserWorkItem(ShowProgressHandler, form);

    form.ShowDialog();

}

private void ShowProgressHandler(object o)
{
    Form2 form = o as Form2;
    for (int i = 0; i < 100; i++)
    {
        int i1 = i;
        this.Invoke((MethodInvoker) (() => form.OnProgress(i1)));
        Thread.Sleep(100);
    }
}

表格2

public event Action<int> Progress;

protected internal virtual void OnProgress(int obj)
{
    progressBar1.Value = obj;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM