Событие обновления формы PowerPoint VSTO - PullRequest
0 голосов
/ 26 апреля 2020

Я ищу решение, чтобы узнать, какая текстовая форма была обновлена ​​(текст изменен внутри фигуры) в AddIn с помощью VSTO C#. После исследования я вижу только возможности с событием Application_WindowSelectionChange.

Это событие вызывается только при выборе Shape. Но я понял, что это событие не запускается, когда я щелкаю прямо в фигуре, чтобы я мог редактировать текст.

Этот код работает, если фигура выбрана (также внутри группы).

        private void Application_WindowSelectionChange(PowerPoint.Selection oSelection)
    {
        if (oSelection.Type == PowerPoint.PpSelectionType.ppSelectionShapes)
        {
            if (oSelection.ShapeRange.Type == Office.MsoShapeType.msoGroup)
            {
                if (oSelection.ShapeRange[1].Name == "abc"
                {
                    if (oSelection.ShapeRange[1].GroupItems.Count > 1)
                    {
                        PowerPoint.Shape oShapeInRange = Globals.ThisAddIn.Application.ActiveWindow.Selection.ChildShapeRange[1];
                        MessageBox.Show(oShapeInRange.Name);
                    }
                }
            }

        }
    }

Существует ли решение / обходной путь, позволяющий узнать, был ли отредактирован текст указанной формы c (событие для перехода в текстовую форму, а также после обновления текста в форме, оставив модус редактирования текста формы).

...