2012-06-28 38 views
0

當我關閉一個CustomTaskPane並更改工作表時,似乎沒有完全刪除一個窗格。並且CustomTaskPane大小的工作表區域變爲非活動狀態。CustomTaskPane將不會完全關閉

這裏是我正在做代碼:

ctp.Visible = false; 

而且在PaneVisibleChanged event

private void PaneVisibleChanged(object sender, EventArgs e) 
    { 
     CustomTaskPane pane = (CustomTaskPane)sender; 
     if (!pane.Visible) 
     { 
      pane.Control.Dispose(); 
      CustomTaskPanes.Remove(pane); 
     } 
    } 

觀察:當我有兩個並列的CustomTaskPanes側和我關閉一個它發生。

+0

當你說「沒有完全消失」,我想你指的是任務窗格中消失了,但事情是關閉與Excel呈現方式(「幻象「東西),是嗎?你爲什麼試圖處理這個TaskPane - 爲什麼不讓它成爲? – Mathias

+0

是的。這是正確的。當用戶關閉窗格時,我需要捕獲更改的可見性事件並執行任務。我的一個功能需要CustomTaskPane自動關閉/隱藏,所以我需要處理它。雖然這樣做,我已經觀察到UI渲染問題。 – Cannon

+1

我不明白的是爲什麼你要經歷處理所有事情的努力。簡單地將TaskPane隱藏起來有什麼問題? – Mathias

回答

0

我面臨着類似的問題與自定義任務窗格不VSTO Excel 2010中的代碼正確處理我使用的嘗試解決這個問題很簡單:

var taskbar = Globals.ThisWorkbook.Application.CommandBars["Task Pane"]; 
taskbar.Reset(); 

的Visible事件側面板對我來說似乎不起作用。我通常顯示或隱藏這樣的任務窗格:

Globals.ThisWorkbook.Application.CommandBars["Task Pane"].Visible = false; 
+0

我還沒有能夠解決這個問題。 – Cannon