Форум пользователей Visio
http://visio.getbb.ru/

Как программно определить список связности шейпа C#?
http://visio.getbb.ru/viewtopic.php?f=6&t=95
Страница 1 из 1

Автор:  Sila [ 08 май 2012, 14:39 ]
Заголовок сообщения:  Как программно определить список связности шейпа C#?

Вобщем у меня есть список шейпов текущего документа.

// Запись шейпов в активном документе в переменную shapes
Shapes shapes = Globals.ThisAddIn.Application.ActivePage.Shapes;

Как мне определить шейпы, которые связаны с ним, причем таким образом, чтобы было понятно in или out - входная или выходная стрелка.

Автор:  Surrogate [ 10 май 2012, 11:26 ]
Заголовок сообщения:  Re: Как программно определить список связности шейпа C#?

похоже я не совсем понимаю терминологию

Код:
// Запись шейпов в активном документе в переменную shapes
Shapes shapes = Globals.ThisAddIn.Application.ActivePage.Shapes;


C# я не знаю :( , но интуитивно догадался что в этом коде происходит определение переменной - эта переменная содержит в себе все шейпы активного листа. Эти и имеется в виду под словом- список, не так ли ?

Насколько я знаю можно каждый присоединенный объект имеет свойства FromSheet и ToSheet. Думаю, нужно делать перебор всех шейпов входящих в этот список - и заносить все данные в массив

на форуме http://www.visguy.com/2008/03/17/connect-all-shapes-to-each-other/, есть примеры работы с присоединенными шейпами на VBA и C#, может это чем поможет

PS По смыслу наверно это подойдет
Код:
    private void m_connect(Visio.Page visPg )
     {
       Visio.Shape shpFrom, shpTo;
       List<Visio.Shape> collShapes;

       // Set the page-layout settings for routing-style,
       // jump-style, etc.
       m_setPageLayoutSettings(visPg);

       // Add all the non-connector shapes to a VB collection
       collShapes = m_getShapesToConnect(visPg);

       // Loop through the shapes in the shapes collection --
       // connect the ith shape to each jth shape, so to speak:
       for(int i = 0; i < collShapes.Count; i++)
       {
         shpFrom = collShapes[i];

         // Connect to all the other shapes:
         for (int j = i + 1; j < collShapes.Count; j++)
         {
           shpTo = collShapes[j];
           m_connectShapes(shpFrom, shpTo);
         }
       }
     }

Автор:  Sila [ 10 май 2012, 15:55 ]
Заголовок сообщения:  Re: Как программно определить список связности шейпа C#?

спасибо, полезная информация! как разберусь, скину код.

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/