using System.Drawing; using DevExpress.XtraGrid; using DevExpress.XtraGrid.Views.Grid; using DevExpress.XtraGrid.Views.Grid.ViewInfo; using DevExpress.XtraGrid.Drawing; namespace IndexArb.Common { public class GridCustomHelper { private DevExpress.XtraGrid.GridControl grid; private string[] fieldList; public float lineWidth = 2; public Color lineColor = Color.DeepSkyBlue; public GridCustomHelper(DevExpress.XtraGrid.GridControl grid, params string[] lineNameList) { this.grid = grid; this.fieldList = lineNameList; grid.Paint += new System.Windows.Forms.PaintEventHandler(Grid_Paint); } private void Grid_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { if (fieldList == null || fieldList.Length == 0) return; GridControl grid = (GridControl)sender; GridView view = (GridView)grid.MainView; GridViewInfo viewInfo = view.GetViewInfo() as GridViewInfo; foreach (string name in fieldList) { GridColumnInfoArgs columnInfo = viewInfo.ColumnsInfo[view.Columns[name]]; if (columnInfo == null) return; Point p1, p2; p1 = new Point(columnInfo.Bounds.Right, columnInfo.Bounds.Bottom); p2 = new Point(columnInfo.Bounds.Right, columnInfo.Bounds.Bottom + viewInfo.ViewRects.RowsTotalHeight); e.Graphics.DrawLine(new Pen(lineColor, lineWidth), p1, p2); } } } }