如何在 MainWindow 前面的新窗口中创建进度条?现在,将显示我的 prgoressbar。但是,我只使用了 .Show() 函数,窗口什么也不会显示;当我使用 .ShowDialog() 函数时,窗口会显示进度条,但它不起作用。我知道 Show 和 ShowDialog 之间的区别在于 Show 将立即返回。我的问题是如何使我的进度条窗口工作?
问问题
2365 次
1 回答
0
我假设同样的逻辑适用于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;
}
于 2013-03-31T08:56:03.300 回答