c # Ошибка при вставке более одной группы фигур на слайде - PullRequest
0 голосов
/ 19 октября 2018

UPD: Может быть, это поможет.Это детали моей ошибки:

System.UnauthorizedAccessException HResult = 0x80070005
Сообщение = Группировка отключена для выбранных фигур (Для выделенных фигур группирование отключено).Source = FirstPPTAddIn StackTrace: в Microsoft.Office.Interop.PowerPoint.ShapeRange.Group () в FirstPPTAddIn.MyRibbon.OnShapeButton (элемент управления IRibbonControl) в D: \ Documents \ Visual Studio 2017 \ Projects \ FirstPPTAddIn \ FirstPPTAddIn.84

Я добавил свою надстройку в Настройки исключения, и когда я запустил код для второго набора групп, я получил две дополнительные фигуры на слайде без группировки.Я не понимаю, почему последняя строка кода не работает.Я могу просто «скопировать» первую группу, установленную много раз, и внести в нее изменения, но мне нужно добавить их с помощью кнопки.


Я использовал этот код для группировки фигур ,Но это позволяет разместить только одну группу фигур.Что мне нужно изменить в коде для вставки неограниченного числа групп фигур на один слайд?

Часть кода

    PowerPoint._Application myPPT = Globals.ThisAddIn.Application;
    PowerPoint.Slide curSlide = myPPT.ActiveWindow.View.Slide;
    string[] myRangeArray = new string[2];
    myRangeArray[0] = "shape1";
    myRangeArray[1] = "shape2";
    curSlide.Shapes.Range(myRangeArray).Group();

При попытке вставить вторую группу фигур у меня возникает ошибка в последнемстрока говорит System.UnauthorizedAccessException: "grouping is disabled for selected shapes".

Спасибо!

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Мой друг решил эту проблему сегодня.Он добавляет счетчик для фигур в массиве.Часть кода ниже

private int count = 0;
public void OnButton(Office.IRibbonControl control)
{
     var shape1Name = "shape1" + count;
     var shape2Name = "shape2" + count;
...
     shape1.Name = shape1Name;
     shape2.Name = shape2Name;
...
     string[] myRangeArray = new string[2];
     myRangeArray[0] = (shape1Name);
     myRangeArray[1] = (shape1Name); 
     curSlide.Shapes.Range(myRangeArray).Group(); 
     count++;
}
0 голосов
/ 19 октября 2018

Это может быть связано с тем, что файл уже используется. Попробуйте вручную вывести файл powerpoint.exe после добавления фигуры 1

Исключение UnauthorizedAccessException может быть одной из следующих причин:

  • У вызывающей стороны нет необходимых разрешений.
  • Файл - это исполняемый файл, который используется.
  • Путь - это каталог.
  • Путь, указанный для чтениятолько файл.
...