0

プログラミングの初心者で、c# を使用してマスター スライドを削除しようとしていますが、常に「指定されたキャストが無効です」という例外がスローされます。マスター スライドまたはマスター スライド上の図形を削除する方法はありますか?

 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;
                                 }

                              }

                         }

                     }

                 }
             }
4

1 に答える 1

0

スライドの基になっているマスターまたはレイアウトは削除できません。マスター スライドを削除する理由を教えてください。

シェイプを削除するには:

newslide.Master.Shapes.Range.Delete

これにより、スライド マスターから図形が削除されますが、スライドの基になっているレイアウトは削除されないため、必要なものではない可能性があります。

于 2013-04-25T17:55:44.023 に答える