2015-05-18 55 views
1

我試着翻譯從Outlook外接程序到C#展望的AddIn Zoom.Percentage

Private Sub objInspector_Activate() Handles objInspector.Activate 
     Dim wdDoc As Microsoft.Office.Interop.Word.Document = objInspector.WordEditor 
     wdDoc.Windows(1).Panes(1).View.Zoom.Percentage = lngZoom 
End Sub 

這個VBA代碼,但我不能訪問Panes.View.Zoom.Percentage財產

的主要想法是,當用戶打開電子郵件時,他將獲得自定義縮放級別。

我在此刻得到了什麼是:

void Inspector_Activate()   
{    
// this bool is true 
// bool iswordMail = objInspector.IsWordMail(); 

//I get the word document 

Document word = objInspector.WordEditor as Microsoft.Office.Interop.Word.Document; 

word.Application.ActiveDocument.ActiveWindow.View.Zoom.Percentage = 150; 
// at this point i'm getting an exception 
// I've also tried with 
// word.ActiveWindow.ActivePane.View.Zoom.Percentage = 150; getting the same exception      
} 

唯一的例外是:

'System.Runtime.InteropServices.COMException' 類型 的異常出現在OutlookAddInTest.dll但未在用戶代碼中處理

其他信息:此對象模型命令在 電子郵件中不可用。

我是相當新的C#和Office插件,任何意見?

回答

0

感謝Eugene Astafiev的幫助。 方括號的伎倆

VBA

Private Sub objInspector_Activate() Handles objInspector.Activate 
     Dim wdDoc As Microsoft.Office.Interop.Word.Document = objInspector.WordEditor 
     wdDoc.Windows(1).Panes(1).View.Zoom.Percentage = 150 
End Sub 

C#

private void Inspector_Activate() 
     { 
      Document wdDoc = objInspector.WordEditor; 
      wdDoc.Windows[1].Panes[1].View.Zoom.Percentage = 150; 
     } 
0

使用word.Windows.Item(1).View.Zoom.Percentage = 150

+0

不錯的嘗試,感謝,但它不工作。 'Microsoft.Office.Interop.Word.Windows'不包含'Item'的定義 –

+0

它看起來像示例代碼在VBA中。在C#中,Item方法被索引器屬性替換。嘗試使用下面的代碼:'word.Windows [1] .View.Zoom.Percentage = 150;' –

+0

這樣做的竅門! so easy,'word.windows [1] .Panes [1] .View.Zoom.Percentage = 150;',非常感謝 –

0

word.Application.ActiveDocument.ActiveWindow.View.Zoom.Percentage = 150;

什麼屬性確切地引發異常?

無論如何,沒有必要在代碼中調用Application和ActiveDocument屬性。 Inspector類的WordEditor屬性返回Document類的一個實例(不是Word應用程序實例)。

+0

ActiveWindow引發異常。我用word.ActiveWindow.ActivePane.View.Zoom.Percentage = 150;結果相同。這裏https://msdn.microsoft.com/en-us/library/Microsoft.Office.Interop.Word.Zoom.aspx我找到了縮放界面,但我仍然無法獲得ActiveWindow。 –

+0

嘗試使用Word應用程序類的Windows屬性來獲取Window類的實例。 –