2017-08-28 20 views
12

重置我有以下代碼(簡化,以顯示該問題):的Word狀態欄獲取當我使用range.Information

var wdApp = new Application(); 
var wdDoc = wdApp.Documents.Open("C:\foo.docx"); 
wdApp.StatusBar = "Updating..."; 

var rng = wdDoc.Range(10, 10); 
if ((bool)rng.Information(WdInformation.wdWithInTable)) 
{ 

} 

//StatusBar value is gone... 
  • 可能是什麼原因?
  • 我該如何預防?
  • 你知道可能發生這種情況的其他情況嗎?

在這裏,問題的屏幕截圖

1 F10後(步過)

編輯:

所提供的代碼使用NetOffice而不是來自微軟的互操作庫直接,因此語法是正確的。您可能會注意到在提供的屏幕截圖中,它們是從正在運行的應用程序中獲取的斷點,突出顯示當前執行的代碼行,以及右側的應用程序代碼的實際結果。在那裏首先有一個理想的狀態欄「Tabelle 8 von 17 wird neu erstellt」。 (表8出17再造),並在接下來的步驟我的狀態欄不見了,其默認的東西,「165·馮·8227Wörtern」(165出8227個字)

+0

你能提供[mcve]嗎? – dd4711

回答

0

可能是什麼原因?

我相信這是與你正在使用的圖書館。我測試了您的代碼,但使用了Word Interop庫,只有在Word窗口中手動點擊/鍵入狀態欄才能重置狀態欄。

我該如何預防?

我會說看看你正在使用的庫的代碼庫。它很可能是在做一些導致行爲的事情。除非您有使用NetOffice的特定原因,否則我會建議切換到標準的Interop或VSTO。

你知道可能發生這種情況的其他情況嗎?

如上所述,我只能得到狀態欄重置,如果我手動進行窗口的某種輸入。