2015-08-25 4 views
0

У меня есть метод, который находит отношения между двумя объектами, если он существует, я хотел бы нарисовать две ссылки Lineshapes. Я начал реализовывать первую строку, но всякий раз, когда я проверяю код, строки сохраняются. Я попробовал несколько методов (как вы можете видеть), и они не обновляют холст для рисования новых строк.Как обновить/перерисовать холст Microsoft Powerpacks на C#?

private void DrawRelationshipLines() 
      { 
       _canvas = new ShapeContainer {Parent = panelCredentialsVisualisation}; 
       //These methods below do not redraw the canvas 
       _canvas.Shapes.Remove(_tableinfoLine); 
       _canvas.Shapes.Clear(); 
       _canvas.Refresh(); 
       _canvas.Update(); 
       // 

       List<string> relationships = lvSelectedTableInfoCredentialsIntersection.GetAllRelationships(); 

       if (relationships.Capacity == 0) 
        return; 

       foreach (string context in relationships) 
       { 
        Label contextLabelName = GetLabelByName(context); 
        _tableinfoLine = new LineShape 
        { 
         Parent = _canvas, 
         BorderWidth = 2, 
         BorderColor = Color.BlueViolet, 
         StartPoint = new Point(lblselectedTableinfo.Right, lblselectedTableinfo.Top + 10), 
         EndPoint = new Point(contextLabelName.Left, contextLabelName.Top + 10) 
        }; 
    } 

Код штраф в поиске отношений и вовлекая их работы, однако я хотел бы быть в состоянии очистить холст перед нанесением другого отношения, возможно ли это?

Спасибо, если кто-нибудь может помочь.

ответ

0

Перемещение _canvas = новый ShapeContainer {Parent = panelCredentialsVisualisation}; вне метода сделал эту работу. Кажется, что инициализация нового ShapeContainer каждый раз вызывала проблемы.

 Смежные вопросы

  • Нет связанных вопросов^_^