В Visio VBA (или COM API)
Как получить фигуру, не ожидая исключения, когда имя фигуры не найдено?
... на моей странице Visio естьможет или не может быть прямоугольной формы с именем "DraftText".
я хочу проверить, что это там, и если да, сделать что-то.
мой код выглядит как:
Shape waterMarkRect = page.Shapes["DraftText"];
if (waterMarkRect == null)
{
waterMarkRect = page.DrawRectangle(0, 0, 50, 15);
waterMarkRect.Name = "DraftText";
waterMarkRect.NameU = waterMarkRect.Name;
waterMarkRect.Text = "INCONSISTANT";
Layer wMarkLayer = page.Layers["WMark"] ?? page.Layers.Add("WMark");
wMarkLayer.Add(waterMarkRect, 0);
}
...
...
Проблема в том, что если формы "DraftText" нет, я получаю исключение COM.
, поскольку я против использования блока try catch в качестве утилиты кодирования,
Я ищу способ проверить наличие формы перед ее взятием, например IDictionary.TryGetValue (, out);
или if (page.Shapes.Contain ("DraftText")) ...
Есть идеи?