在窗体最小化时,在任务栏中显示进度条

时间:2012-01-18 11:03:19

标签: c# winforms windows-7 progress-bar minimized

我想知道如何实现以下目标:

我希望在窗口最小化时显示任务栏上进度条的进度。有关视觉描述,请参阅here

看看任务栏上的图标如何在窗口中的主进度条后面逐渐填充绿色?

有人可以告诉我该怎么做吗?

更新

我下载了windows api代码包并在我的项目中引用它并编写了以下代码但是当我运行我的应用程序增加pbar并最小化时没有任何反应:

    private void updatepbar()
    { 
        tpb.Value = progressBar1.Value;
    }

        timer1.Tick += new EventHandler(delegate { updatepbar(); });
        timer1.Interval = 1000;
        timer1.Start();

我做错了什么? 非常感谢

3 个答案:

答案 0 :(得分:2)

http://windowsteamblog.com/windows/b/developers/archive/2009/07/28/windows-7-taskbar-dynamic-overlay-icons-and-progress-bars.aspx

Taskbar.ProgressBar.State = 
(TaskbarButtonProgressState)Enum.Parse(
        typeof(TaskbarButtonProgressState), 
        (string)comboBoxProgressBarStates.SelectedItem);

if (Taskbar.ProgressBar.State != TaskbarButtonProgressState.Indeterminate)
   Taskbar.ProgressBar.CurrentValue = progressBar1.Value;

答案 1 :(得分:0)

它仅适用于Windows7,您可以轻松使用Microsoft-Api。

WindowsTeamBlogMSDN上的一个很好的例子中进行了解释。

答案 2 :(得分:0)

您可以在主窗体中使用标准进度条 - Windows 7将检测它并自动在任务栏上模拟它:

来自http://windowsteamblog.com/windows/b/developers/archive/2009/07/28/windows-7-taskbar-dynamic-overlay-icons-and-progress-bars.aspx

  

如果您已在应用程序的顶部使用标准进度条   级别窗口,DMW将拾取它,默认情况下显示它   作为应用程序顶部的叠加层进度。但是,你可以   以编程方式控制您的进度条行为   应用程序的图标。