Application.ActiveWindow.Selection.ShapeRange Бросить исключение, когда ничего не выбрано - PullRequest
0 голосов
/ 02 февраля 2019

Я пытался обработать исключение без try / catch для получения выбранных фигур, и приведенное ниже исключение кода !=null здесь не сработало, любая идея

PowerPoint.Selection selection = Application.ActiveWindow.Selection;
PowerPoint.ShapeRange shapeRange = selection?.ShapeRange; // Throw Ex 
if (shapeRange != null)
{
    // do some code
}

Сообщение об исключении:

Выбор (неизвестный участник): Неверный запрос.Ничего подходящего в данный момент не выбрано.

1 Ответ

0 голосов
/ 02 февраля 2019

Microsoft молчит для PowerPoint, однако для Excel: «Тип возвращаемого объекта зависит от текущего выбора (например, если выбрана ячейка, это свойство возвращает объект Range). Свойство Selection ничего не возвращает, если ничего не выбрано. "

https://docs.microsoft.com/en-us/office/vba/api/excel.application.selection

Я бы ожидал того же для PowerPoint.

Я делаю больше Excel с VB, чем PowerPoint с c #, но я думаю, вы могли бы попробовать что-тов подобии:

if (selection.GetType == null)

Надеюсь, что это даст вам трек для дальнейшего расследования

...