示例#1
0
 public void UpdateEditorBounds()
 {
     if (CurrentEditor != null)
     {
         EditorContext context = new EditorContext();
         context.Owner = CurrentEditorOwner;
         context.CurrentNode = CurrentNode;
         context.Editor = CurrentEditor;
         context.DrawContext = _measureContext;
         SetEditorBounds(context);
     }
 }
示例#2
0
 private void SetEditorBounds(EditorContext context)
 {
     foreach (NodeControlInfo info in GetNodeControls(context.CurrentNode))
     {
         if (context.Owner == info.Control && info.Control is EditableControl)
         {
             Point p = info.Bounds.Location;
             p.X += info.Control.LeftMargin;
             p.X -= OffsetX;
             p.Y -= (_rowLayout.GetRowBounds(FirstVisibleRow).Y - ColumnHeaderHeight);
             int width = DisplayRectangle.Width - p.X;
             if (UseColumns && info.Control.ParentColumn != null && Columns.Contains(info.Control.ParentColumn))
             {
                 Rectangle rect = GetColumnBounds(info.Control.ParentColumn.Index);
                 width = rect.Right - OffsetX - p.X;
             }
             context.Bounds = new Rectangle(p.X, p.Y, width, info.Bounds.Height);
             ((EditableControl)info.Control).SetEditorBounds(context);
             return;
         }
     }
 }