| | |
| | | using DevExpress.Utils; |
| | | using DevExpress.XtraEditors; |
| | | using DevExpress.XtraEditors.Controls; |
| | | using DevExpress.XtraEditors.Drawing; |
| | | using DevExpress.XtraGrid; |
| | | using DevExpress.XtraGrid.Columns; |
| | | using DevExpress.XtraGrid.Menu; |
| | |
| | | txt_iCount_1.ReadOnly = true; |
| | | } |
| | | |
| | | |
| | | |
| | | #region 自定义进度条列 |
| | | |
| | | /// <summary> |
| | | /// 自定义进度条列 |
| | | /// </summary> |
| | | /// <param name="view"></param> |
| | | /// <param name="fieldName">列的字段名</param> |
| | | /// <param name="warningValue"></param> |
| | | /// <param name="lessColor"></param> |
| | | /// <param name="greaterColor"></param> |
| | | public static void CustomProgressBarColumn(DevExpress.XtraGrid.Views.Grid.GridView view, string fieldName, int warningValue = 50, Brush lessColor = null, Brush greaterColor = null) |
| | | { |
| | | var col = view.Columns[fieldName]; |
| | | if (col == null) return; |
| | | col.AppearanceCell.Options.UseTextOptions = true; |
| | | col.AppearanceCell.TextOptions.HAlignment = HorzAlignment.Center; |
| | | view.CustomDrawCell += (s, e) => |
| | | { |
| | | int _handle = e.RowHandle; |
| | | if (_handle < 0) |
| | | return; |
| | | if (e.Column.FieldName == fieldName) |
| | | { |
| | | DrawProgressBar(e, warningValue, lessColor, greaterColor); |
| | | e.Handled = true; |
| | | DrawEditor(e); |
| | | } |
| | | }; |
| | | } |
| | | |
| | | private static void DrawProgressBar(DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e, int warningValue = 50, Brush lessColor = null, Brush greaterColor = null) |
| | | { |
| | | string d = e.CellValue == null ? null : e.CellValue.ToString(); |
| | | decimal percent = string.IsNullOrEmpty(d) ? 0m : decimal.Parse(d); |
| | | if (percent <= 0) |
| | | percent = 0.1m; |
| | | int width = (int)(percent * e.Bounds.Width); |
| | | Rectangle rect = new Rectangle(e.Bounds.X, e.Bounds.Y, width, e.Bounds.Height); |
| | | Brush b = Brushes.Green; |
| | | if (greaterColor != null) |
| | | { |
| | | b = greaterColor; |
| | | } |
| | | if (percent * 100 < warningValue) |
| | | |
| | | { |
| | | if (lessColor == null) |
| | | |
| | | { |
| | | b = Brushes.Red; |
| | | } |
| | | else |
| | | |
| | | { |
| | | b = lessColor; |
| | | } |
| | | } |
| | | e.Graphics.FillRectangle(b, rect); |
| | | } |
| | | private static void DrawEditor(DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e) |
| | | |
| | | { |
| | | GridCellInfo cell = e.Cell as GridCellInfo; |
| | | Point offset = cell.CellValueRect.Location; |
| | | BaseEditPainter pb = cell.ViewInfo.Painter as BaseEditPainter; |
| | | AppearanceObject style = cell.ViewInfo.PaintAppearance; |
| | | if (!offset.IsEmpty) |
| | | cell.ViewInfo.Offset(offset.X, offset.Y); |
| | | try |
| | | |
| | | { |
| | | pb.Draw(new ControlGraphicsInfoArgs(cell.ViewInfo, e.Cache, cell.Bounds)); |
| | | } |
| | | |
| | | finally |
| | | |
| | | { |
| | | if (!offset.IsEmpty) |
| | | |
| | | { |
| | | cell.ViewInfo.Offset(-offset.X, -offset.Y); |
| | | } |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region 绘制表头全选勾选框 |
| | | /// <summary> |
| | | /// 绘制表头全选勾选框 |