2013-04-24 2 views
0

Im의 베가니너 프로그래밍에서 마스터 슬라이드를 삭제하려고하는데 C#을 사용하지만 항상 예외를 throw합니다. "지정된 캐스트가 유효하지 않습니다."삭제할 방법이 있습니까? 마스터 슬라이드 또는 마스터 슬라이드의 모양 .. 제발 제안하십시오.어떻게 마스터 문서를 ppt 문서에서 삭제할 수 있습니까?

for (int i = 1; i <= SlideCount; i++) 
      { 
       int j=i; 
       slide = Slides[i]; 

       //iterate over all the shapes of notespage of given slide to find the notespage's shape which has text. 
       for (int k = 1; k <= slide.NotesPage.Shapes.Count; k++) 
       { 
         var noteShape = slide.NotesPage.Shapes[k]; 

        //check if the selected notespage has text or not 
        if (noteShape.Type ==MsoShapeType.msoPlaceholder) 
        { 
         if (noteShape.PlaceholderFormat.Type ==PpPlaceholderType.ppPlaceholderBody) 
         { 
          if (noteShape.HasTextFrame ==MsoTriState.msoTrue) 
          { 
           if (noteShape.TextFrame2.HasText ==MsoTriState.msoTrue) 
           { 

             //create a new slide 
             newslide = tempslides.AddSlide(++j, customLayout); 

             // set the title of newslide as the text of notepage of previous slide. 
             newslide.Shapes.Title.TextFrame.TextRange.Text = noteShape.TextFrame.TextRange.Text; 

             //delete the notepage text; 
             noteShape.TextFrame.TextRange.Delete(); 

             //delete footer from slide. 
             //if (newslide.HeadersFooters.Footer.Visible == MsoTriState.msoTrue) 
             // newslide.HeadersFooters.Footer.Text = string.Empty; 
             //newslide.HeadersFooters.DateAndTime.Text = string.Empty; 
             //newslide.HeadersFooters.SlideNumber.Text = string.Empty; 
             newslide.HeadersFooters.Clear(); 
             newslide.Master.Delete(); 




             //jump to next slide 
             i++; 

             //increase the slide count becoz one slide has been added. 
             SlideCount = tempslides.Count; 
           } 

           } 

         } 

        } 

       } 
      } 

답변

0

슬라이드를 기반으로하는 마스터 또는 레이아웃을 삭제할 수 없습니다. 왜 마스터 슬라이드를 삭제 하시겠습니까?

는 모양 삭제하려면 :

newslide.Master.Shapes.Range.Delete을

슬라이드 마스터에서 모양을 삭제 아닌 슬라이드를 기반으로 레이아웃, 그래서 수도 것

정확히 당신이 필요로하는 것은 아닙니다.