我又一次遇到了一個小問題(我希望),並且我不知道如何獲得對PowerPoint提供的某些表示屬性的訪問權限(但是我沒有甚至知道如何在C#的網站:()上搜索它,或者在C#站點上搜索它。我們可以通過interop程序集和ms-office內置的VBA編輯器分別訪問C#和VBA中的TextRange
屬性。沒關係,但是這個屬性包含兩個相同名稱的實體 - Runs
。VBA允許作爲方法和屬性訪問它(此外,Runs
屬性對象內部是有用的),但是不能通過interop程序集訪問屬性Runs
, Runs()
方法只能被訪問(並且它返回文本運行對象)。我使用.NET Reflector挖掘了互操作程序集,但是我擁有e沒有找到與Runs
屬性相關的任何內容(儘管具有不同唯一性而不是方法名稱的屬性具有自己的get_Property()
和set_Property()
方法)。看來interop程序集缺少TextRange
接口的Runs
屬性。坦率地說,我不確定。 :(從.NET程序集中訪問同名的COM實體
我可以以某種方式獲得C#訪問Runs
財產?我不熟悉COM等,我希望對你有所幫助,謝謝。
謝謝你的答覆。不,我使用Microsoft.Office.Interop.PowerPoint.TextRange,它不包含get_Runs()的定義。 :(另外,不幸的是我必須注意到我使用C#2.0和PowerPoint 2003. – 2010-01-05 10:30:50
Microsoft.Office.Interop.PowerPoint.TextRange有一個Runs()方法,它不是一個屬性,注意這些TextRange類不相同,你可以將TextRange與PowerPoint TextRange混合使用 – 2010-01-05 10:59:50
但是,Microsoft.Office.Interop.PowerPoint.TextRange.Runs也是一個屬性,從VBA中可以看出它很漂亮,你已經注意到了它在上面的答案。看,我指向C#和VBA中的同一個實體。當然,我不能混合來自Office和PowerPoint命名空間的TextRange-s,但它不是必需的,我只想獲得.TextRange.Runs.Count屬性。問題的原因:)但是...當沒有源代碼時,我可能會以某種方式更新生成的互操作庫?我想用類似get_RunsData()的東西來增強它。我猜這是這樣的。 – 2010-01-05 11:35:28