В Visio VBA (или COM API)Visio Page Найти Форму по имени без исключения
Как я могу получить форму не ожидая исключения, когда имя формы не найдено?
... на моей странице 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 Exception.
, как я против использования попытаться поймать блок как утилита кодирования,
я ищу способ, чтобы проверить для существования формы до принятия его таким, как IDictionary.TryGetValue (, выход);
или если (page.Shapes.Contain ("DraftText")) ...
Любые идеи?
Я предполагаю, что это скорее всего возможно, возможно, вы захотите добавить чек для того, что было захвачено Исключение: catch (COMException ex) {if (ex.ErrorCode! = 0x00000) throw;} 'поэтому вы не пропустите истинный исключение –