public void UpdateEditorBounds() { if(CurrentEditor!=null) { EditorContext context=new EditorContext(); context.Owner=CurrentEditorOwner; context.CurrentNode=CurrentNode; context.Editor=CurrentEditor; context.DrawContext=_measureContext; SetEditorBounds(context); } }
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; } } }