0
我想用C#(Net 3.5)將進度條添加到Windows 7中的任務欄圖標。我使用Windows API代碼包來實現這一目標:任務欄進度條在隱藏窗口後不顯示
if (WindowStateInternal == FormWindowState.Normal) // the taskbar can only be set if the window is visible
{
TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Normal);
TaskbarManager.Instance.SetProgressValue(100 - (int)PercentRemaining, 100);
}
這工作得很好,但僅在第一次顯示該窗口。用戶可以選擇最小化隨後將被刪除的窗口,如托盤圖標所示。如果窗口再次顯示,我無法再打開進度條。
代碼運行時,用戶最小化窗口:
this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = false;
this.Visible = false; // otherwise problem when windows starts up and program is in autostart
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; // Hide from Task-List (Alt+Tab)
,當它即將恢復正常:
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; // Show in Task-List (Alt+Tab)
this.Visible = true;
this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Normal;
this.BringWindowToFront();
關閉和進度條不工作。
如何再次顯示progressBar?
您是否嘗試過將代碼用於設置進度條的進度狀態,該代碼在從托盤中恢復後顯示窗口的代碼部分中? (即在第三個代碼後插入第一個代碼塊) –
該代碼每秒由計時器運行。其他代碼僅在窗口大小發生變化時纔有效 –