2016-06-15 4 views
0

Я пытаюсь выяснить, существует ли определенная форма в презентации Powerpoint. Я новичок в C# и не уверен, как циклически перебирать все фигуры. Я пробовал цикл foreach, но не получил нигде. Вот что я получил:C# Проверка наличия определенной формы в Powerpoint

using pptNS = Microsoft.Office.Interop.PowerPoint; 

... 

    pptNS.Slide pptSlide = null; 
    bool shapeCheck = false; 
    pptNS.Presentation pptPresentation = null; 

try 
    { 
     // Create an instance of PowerPoint. 
     powerpointApplication = new pptNS.ApplicationClass(); 

     pptPresentation = powerpointApplication.Presentations.Open([pptAddress]); 

     foreach (pptNS.Shapes sh in pptSlide.Shapes) 
     { 
      if (sh.Title.Equals("SlideID")) 
      { 
       shapeCheck = true; 
      } 
     } 
} 
    catch (Exception ex) 

Но, очевидно, это бросает System.InvalidCastException. Кто-нибудь знает, что я должен использовать вместо pptSlide.Shapes в цикле foreach? Или еще один способ проверить, существует ли определенная форма?

+0

Есть класс под названием Shape? –

+0

Не так далеко, как я могу видеть, но, как я уже сказал, я не испытываю на C#, поэтому я могу ошибаться. – UsefulUserName

ответ

0

Я думаю, вы должны изменить это:

foreach (pptNS.Shapes sh in pptSlide.Shapes) 

к этому:

foreach (var sh in pptSlide.Shapes) 
+0

Но как мне добраться до названия Shape? – UsefulUserName

Смежные вопросы