【发布时间】:2011-05-03 18:11:32
【问题描述】:
我试图在单击按钮时在单独的窗口中显示进度条。 我不想使用调度程序,调用函数,因为我不希望用户在它完成之前做任何其他事情。
所以在按钮单击时,我会调用一个函数,该函数在内部使用委托来调用更新的函数。
void button click()
{
classA.function(list);
}
在那个classA里面
void function(list)
{
foreach(list)
calling the delegate function(ShowtProgress) to update the progress bar with current and max properties.
}
所以我的委托函数看起来像这样:
private void ShowtProgress(ProgressReport importProgressReport)
{
importProgressBar.UpdateProgressBar(importProgressReport.OverallProgress.TotalItems,importProgressReport.OverallProgress.ItemsProcessed);
importProgressBar.ShowDialog();
}
如您所见,我将当前处理的项目数和总项目数传递给进度条 updateProgressbar 函数以更新进度条。
我已将进度条的最小值定义为 0。
但问题是当 min = 0 并假设 max = 1 时它第一次显示显示对话框(进度条)的那一刻。它就在那里等待用户输入。在我不关闭对话框之前,处理不会更进一步,并且当再次调用此函数时,模式不会弹出或不会更新为最新值。
如果我遗漏了什么,请告诉我。
【问题讨论】:
-
由于 ShowDialog() 调用,它正在等待用户输入,请使用普通的 Show()(如果 importProgressBar 不可见),或者如果已经存在则删除该行。
-
你应该好好学习how to format你的问题了...
-
@H.B.:下次我会记住这一点。谢谢指出
-
嗨,罗伊,show() 成功了。 .
标签: c# wpf progress-bar