目录
- 1.gridview列头自带排序和筛选,去掉按钮显示
- 2.gridview单元格数据展示去掉小数点后的0,例如让30.0显示为30
- 3.gridview序号显示列如何显示以及宽度调整
- 4.gridview设置全选进行批量操作
- 5.gridview中方向键控制焦点在当前行左右移动或循环移动
- 6.gridview导出选中行
- 7.ribbonPageGroup中添加控件之radioGroup
- 8.ribbonPageGroup中点击保存按钮时gridview中正在编辑的单元格离焦
- 9.gridview鼠标悬浮预览设置 ToolTip 持续显示时间
- 10.gridview单元格内增加多个按钮
- 11.gridview中内容左对齐显示,合计左对齐
- 12.ribbonPageGroup中添加单选控件设置勾选框位置
- 12.gridview中点击单选框立即生效
- 13.gridview中获取已过滤和排序的数据并转换(获取后自行空检查)
1.gridview列头自带排序和筛选,去掉按钮显示
在如下位置将AllowSort设置为false,可以去掉排序按钮。
同样将AllowFilter设置为False可以取消筛选按钮显示。
2.gridview单元格数据展示去掉小数点后的0,例如让30.0显示为30
同样在column properties中设置如下属性。
3.gridview序号显示列如何显示以及宽度调整
调整显示宽度在gridview属性里修改。
显示出序号需要绑定事件。
private void gridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
{
//可以调整序号的显示宽度
gridView1.IndicatorWidth = 40;
if (e.Info.IsRowIndicator && e.RowHandle > -1)
{
e.Info.DisplayText = (e.RowHandle + 1).ToString();
}
}
绑定成功后即可显示出序号。
4.gridview设置全选进行批量操作
对这两个属性进行设置即可出现全选框
List<~> list = new List<~>();
int[] rows = gridView1.GetSelectedRows();
foreach (int i in rows)
{
var data = gridView1.GetRow(i) as ~;
list.Add(data);
}
return list;
自定义方法将list返回,传到后台即可进行批量操作。
5.gridview中方向键控制焦点在当前行左右移动或循环移动
加入方向键重写控制焦点在当前行循环移动
//方向键事件的处理,只能重写ProcessCmdKey
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
int index = this.gridView1.GetFocusedDataSourceRowIndex();
switch (keyData)
{
case Keys.Right:
if (gridView1.FocusedColumn == gridView1.Columns["最后一个单元格"])
{
gridView1.FocusedColumn = gridView1.Columns["第一个单元格"];
}
break;
case Keys.Left:
if (gridView1.FocusedColumn == gridView1.Columns["第一个单元格"])
{
gridView1.FocusedColumn = gridView1.Columns["最后一个单元格"];
}
break;
}
return base.ProcessCmdKey(ref msg, keyData);
}
6.gridview导出选中行
7.ribbonPageGroup中添加控件之radioGroup
8.ribbonPageGroup中点击保存按钮时gridview中正在编辑的单元格离焦
在gridview中新增数据行输入数据保存时不离焦会使正在输入单元格最新数据保存失败。
解决方法:需在保存中加入下面代码。
gridView1.FocusInvalidRow();
9.gridview鼠标悬浮预览设置 ToolTip 持续显示时间
public Frm()
{
InitializeComponent();
// 创建 ToolTipController 实例
ToolTipController toolTipController = new ToolTipController(components) // 'components' 来自 设计器生成的代码
{
InitialDelay = 500, // 鼠标悬浮多久后显示提示(单位:毫秒)
ReshowDelay = 100, // 鼠标从一个元素移到另一个元素上的重新显示时间(单位:毫秒)
AutoPopDelay = 300000 // 提示显示多久后自动消失(单位:毫秒)
};
// 将 ToolTipController 赋给 GridController
gridControl1.ToolTipController = toolTipController;
// 可选:如果需要自定义显示的提示内容 所有单元格都会显示
toolTipController.GetActiveObjectInfo += toolTipController_GetActiveObjectInfo;
}
private void toolTipController_GetActiveObjectInfo(object sender, ToolTipControllerGetActiveObjectInfoEventArgs e)
{
GridHitInfo hitInfo = gridView1.CalcHitInfo(e.ControlMousePosition);
if (hitInfo!=null&&hitInfo.InRowCell)
{
//可以自定义显示需要的内容
var text = "内容为"+gridView1.GetRowCellValue(hitInfo.RowHandle, hitInfo.Column).ToString();
// 避免重复设置相同的提示信息
if (e.Info == null || ((ToolTipControlInfo)e.Info).Text != text)
{
e.Info = new ToolTipControlInfo(hitInfo.Column, text);
}
}
else
{
// 清除提示信息以避免闪烁
e.Info = null;
}
}
10.gridview单元格内增加多个按钮
在需要增加按钮的列增加ButtonEdit控件
设置列中ButtonEdit的属性隐藏文本编辑
再设置按钮的属性显示文字,其他样式可以自选
11.gridview中内容左对齐显示,合计左对齐
gridview中字符串的显示默认是靠左,数字是靠右,需要进行属性设置即可所有内容靠左显示
合计左对齐
12.ribbonPageGroup中添加单选控件设置勾选框位置
单选框默认右侧,Far可以调整到左侧
12.gridview中点击单选框立即生效
设置点击对应勾选时不用双击
private void gridView1_MouseDown(object sender, MouseEventArgs e)
{
var hInfo = gridView1.CalcHitInfo(new Point(e.X, e.Y));
if (hInfo.InRow)
{
if (e.Button == MouseButtons.Left && hInfo.Column != null)
{
if (hInfo.Column.FieldName == "字段" || hInfo.Column.FieldName == "字段")
{
gridView1.OptionsBehavior.EditorShowMode = EditorShowMode.Default;
}
else
{
gridView1.OptionsBehavior.EditorShowMode = EditorShowMode.Click;
}
}
}
}
设置值变更时立即修改数据
private void gridView1_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
if (e.Column.FieldName == "字段" || e.Column.FieldName == "字段")
{
//复选框勾选要用以下形式才能让数据一起改
gridView1.SetRowCellValue(e.RowHandle, e.Column, e.Value);
}
}
13.gridview中获取已过滤和排序的数据并转换(获取后自行空检查)
public List<DTO> GetGridViewFilteredAndSortedData(DevExpress.XtraGrid.Views.Grid.GridView view)
{
var list = view.DataController.GetAllFilteredAndSortedRows();
if (list != null && list.Count > 0)
{
//强制转换
return list.Cast<DTO>().ToList();
}
return null;
}