0
如何在我的MainWindow前的新窗口中創建進度條?現在,我的prgoressbar將顯示。但是,我只是使用.Show()函數,窗口不會顯示任何內容;當我使用.ShowDialog()函數時,那麼窗口將顯示進度條,但它不起作用。我知道Show和ShowDialog之間的區別在於Show將立即返回。我的問題是如何讓我的進度條窗口工作?在新窗口中顯示進度條
如何在我的MainWindow前的新窗口中創建進度條?現在,我的prgoressbar將顯示。但是,我只是使用.Show()函數,窗口不會顯示任何內容;當我使用.ShowDialog()函數時,那麼窗口將顯示進度條,但它不起作用。我知道Show和ShowDialog之間的區別在於Show將立即返回。我的問題是如何讓我的進度條窗口工作?在新窗口中顯示進度條
我承擔同樣的邏輯也適用於WPF
該解決方案基於WinForm
Form1中
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;
}
你使窗口在一個新的參考題?您應該能夠訪問新窗口實例中的控件。 – Jeremy
你能顯示一些代碼嗎? –
'DownloadProgressWindow userControl = new DownloadProgressWindow(cnt_s);'我在我的主窗口中調用我的進度窗口。 – CYB