第三方 DevExpress XtraGrid 控件 常用公共类库

/// <summary> /// Code By :吕晓佳 /// 2011年6月16日15:09:43 /// </summary> public static class GridViewCommonClass { #region 常用属性 方法 /* //焦点单元格的列 gridview1.FocusedColumn //焦点单元格所在行的行号 gridview1.FocusedRowHandle //焦点单元格的值 gridview1.FocusedValue //指定单元格显示的字符串值 gridview1.GetRowCellDisplayText(int rowHandler,string feildName) //指定单元格的值 gridview1.GetRowCellValue(int rowHandler,string feildName) //设置焦点单元格所在行指定列的值 gridview1.SetFocusedRowCellValue(GridColumn col,object value) //设置焦点单元格的值 gridview1.SetFocusedValue(object value) //设置指定单元格的值 //有了这个函数,就可以手工创建行了。 gridview1.SetRowCellValue(int rowHandler,string feildName,object value) gridview1.SetRowCellValue(int rowHandler,GridColumn col,object value) */ #endregion /// <summary> /// GridView 隔行变色 /// 例: Common.BackGroundColorByGridView(this.gridView1,0,0,0,0,0,0); /// </summary> /// <param name="GridView">控件名称</param> /// <param name="R1">奇数颜色R</param> /// <param name="G1">奇数颜色G</param> /// <param name="B1">奇数颜色B</param> /// <param name="R2">偶数颜色R</param> /// <param name="G2">偶数颜色G</param> /// <param name="B2">偶数颜色B</param> public static void BackGroundColorByGridView(GridView GridView,int R1,int G1,int B1,int R2,int G2,int B2) { if (R1 == 0) { R1 = 227; } if (G1 == 0) { G1 = 241; } if (B1 == 0) { B1 = 249; } if (R2 == 0) { R2 = 255; } if (G2 == 0) { G2 = 255; } if (B2 == 0) { B2 = 255; } GridView.OptionsView.EnableAppearanceEvenRow = true; GridView.OptionsView.EnableAppearanceOddRow = true; GridView.Appearance.EvenRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(R1)))), ((int)(((byte)(G1)))), ((int)(((byte)(B1))))); GridView.Appearance.EvenRow.Options.UseBackColor = true; GridView.Appearance.OddRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(R2)))), ((int)(((byte)(G2)))), ((int)(((byte)(B2))))); GridView.Appearance.OddRow.Options.UseBackColor = true; } /// <summary> /// GridView 最左边状态栏 显示序号 例: /// gridView1_CustomDrawRowIndicator(e) /// </summary> /// <param name="e"></param> public static void IndicatorNoByGridView(DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e) { try { if (e.Info.IsRowIndicator && e.RowHandle >= 0) { e.Info.DisplayText = (e.RowHandle + 1).ToString().Trim(); } } catch { return; } } /// <summary> /// 合计某列值 在底部显示 /// /// </summary> /// <param name="GridView">控件名称</param> /// <param name="ColumName">DataTable列名</param> /// <param name="ItemType">合计的类型:Sum Min Max Count Average Custom None</param> /// <param name="Format">显示格式 如:(合计:{0})</param> public static void CountSumByGridView(GridView GridView,string ColumName,SummaryItemType ItemType,string Format) { if(Format.Length<2) Format="(合计:{0})"; GridView.OptionsView.ShowFooter = true; // 统计的类型 GridView.Columns[ColumName].SummaryItem.SummaryType =ItemType; // 显示的格式 GridView.Columns[ColumName].SummaryItem.DisplayFormat = Format; } /// <summary> /// 设某一列文字和标题局中显示 /// </summary> /// <param name="GridView">控件</param> /// <param name="ColumName">列名称</param> /// <param name="Location">位置</param> public static void DisPlayTestLocation(GridView GridView,string ColumName,HorzAlignment Location) { GridView.Columns[ColumName].AppearanceHeader.TextOptions.HAlignment = Location; GridView.Columns[ColumName].AppearanceCell.TextOptions.HAlignment = Location; } /// <summary> /// 设置表头 某列是否显示过滤选项 是否启用 /// </summary> /// <param name="GridView">控件名称</param> /// <param name="ColumName">列名称</param> /// <param name="DisplayStatus">是否显示</param> public static void EnabledHeadFilter(GridView GridView, string ColumName, bool DisplayStatus) { GridView.Columns[ColumName].OptionsFilter.AllowAutoFilter = DisplayStatus; GridView.Columns[ColumName].OptionsFilter.AllowFilter = DisplayStatus; GridView.Columns[ColumName].OptionsFilter.ImmediateUpdateAutoFilter = DisplayStatus; } /// <summary> /// 冻结表头某列 /// </summary> /// <param name="GridView">控件</param> /// <param name="ColumName">列名</param> /// <param name="Fixed">冻结位置</param> public static void FixedGridViewHead(GridView GridView, string ColumName,DevExpress.XtraGrid.Columns.FixedStyle Fixed) { GridView.Columns[ColumName].Fixed = Fixed; } /// <summary> /// 手动绑定后添加某列 /// 例:HeadMoveColum(GridView1,"ID",True) /// </summary> /// <param name="GridView">控件名称</param> /// <param name="FieldName">绑定列表称</param> /// <param name="Visible">是否显示这列</param> public static void HeadMoveColum(GridView GridView,string FieldName,bool Visible) { DevExpress.XtraGrid.Columns.GridColumn Col1 = new DevExpress.XtraGrid.Columns.GridColumn(); Col1.FieldName = FieldName; Col1.Visible = true; Col1.VisibleIndex = GridView.Columns.Count; GridView.Columns.Add(Col1); } /// <summary> /// 新增一行 /// </summary> /// <param name="GridView">控件名称</param> public static void AddNewRow(GridView GridView) { GridView.AddNewRow(); } /// <summary> /// 添加一个新行 并在新行的InitNewRow 实现特殊的功能 如:复制最后一行的数据到新行 /// </summary> /// <param name="GridView"></param> /// <param name="sender"></param> /// <param name="e"></param> public static void AddNewDraw(GridView GridView,object sender,DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e) { ColumnView View = sender as ColumnView; View.SetRowCellValue(e.RowHandle, View.Columns[0], GridView.GetRowCellValue(GridView.GetRowHandle(GridView.RowCount - 2), GridView.Columns[0])); //复制最后一行的数据到新行 View.SetRowCellValue(e.RowHandle, View.Columns[1], GridView.GetRowCellValue(GridView.GetRowHandle(GridView.RowCount - 2), GridView.Columns[1])); //复制最后一行的数据到新行 } /// <summary> /// 验证某一单元格 是否符合条件 ValidatingEditor事件中 /// </summary> /// <param name="GridView">控件名称</param> /// <param name="sender">对象</param> /// <param name="e">对象</param> /// <param name="parmars"> 0:列名 1:提示信息 2:正则表达式 </param> public static void ValidatRowCell(GridView GridView, object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e, params string[] parmars) { if (e.Valid == false & GridView.FocusedColumn.FieldName == parmars[0]) { e.ErrorText = parmars[1]; } if (GridView.FocusedColumn.FieldName == parmars[0]) { Regex reg = new Regex(parmars[2]); Match m = reg.Match(e.Value.ToString().Trim()); if (m.Length != e.Value.ToString().Trim().Length && e.Value.ToString().Trim().Length>0) { e.Valid = false; e.ErrorText = parmars[1]; } } } }//两个GridView控件之间的项拖拽 //Mouse按下 GridHitInfo viewInfo = null; string dropname = ""; private void gridControlMouseDown(object sender, MouseEventArgs e) { var Cont = (sender as GridControl); var grid = Cont.FocusedView.GridControl.Views[0] as GridView; viewInfo=null; viewInfo = grid.CalcHitInfo(e.X, e.Y); } private void gridControlMouseMove(object sender, MouseEventArgs e) { if (viewInfo == null) return; if (e.Button != MouseButtons.Left) return; var Cont = (sender as GridControl); dropname = Cont.Name; var grid = Cont.FocusedView.GridControl.Views[0] as GridView; Rectangle dragRect = new Rectangle(new Point( viewInfo.HitPoint.X - SystemInformation.DragSize.Width / 2, viewInfo.HitPoint.Y - SystemInformation.DragSize.Height / 2), SystemInformation.DragSize); if (!dragRect.Contains(new Point(e.X, e.Y))) { var Data = grid.GetRow(viewInfo.RowHandle) as OrderDetails; Cont.DoDragDrop(Data,DragDropEffects.Move); } viewInfo = null; } //获取拖放的数据 private void gridControlDragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent("OMS.Model.OrderDetails")) e.Effect = DragDropEffects.Move; else e.Effect = DragDropEffects.None; } //拖放完毕 private void gridControlDragDrop(object sender, DragEventArgs e) { var Cont = (sender as GridControl); if (Cont.Name == dropname) return;//防止在一个里面拖动 var grid = Cont.FocusedView.GridControl.Views[0] as GridView; OrderDetails row = e.Data.GetData(typeof(OrderDetails)) as OrderDetails; if (row != null) { var datasouse = grid.DataSource as List<OrderDetails>; datasouse.Add(row); Cont.RefreshDataSource(); //移除另一个选项 } }

 

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值