없이 이름으로 Shape를 찾기의 Visio 페이지의 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 예외를 얻을 수 있다는 것입니다 : 같은
내 코드 보인다. 난 종래 예 IDictionary.TryGetValue (아웃)으로 복용 형태에 존재하지 않는지 체크하는 방법을 검색하고
제가 코딩 유틸리티로서 사용해 캐치 블록을 사용 대하여 생각대로
;
또는 (page.Shapes.Contain ("DraftText"))의 경우 ...
어떤 아이디어가?
이게 가능할 가능성이 가장 높습니다. Exception이 잡히는 것에 대한 체크를 추가 할 수 있습니다. catch (COMException ex) {if (ex.ErrorCode! = 0x00000) throw;}'그래서 당신은 사실을 놓치지 않을 것입니다. 예외 –