コード例 #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;
				}
			}
		}