效果图
设计界面
在界面中添加GridControl,形成以下大概界面,点击Run Designer
在gridView1选择OptionSelection属性,设置MultiSelect设置为True,在MultiSelectMode,选择CheckBoxRowSelect
设置完成之后界面如图所示
我们将表头的复选框设置为我们想要的名字
设置该列标题,设置事件CustomDrawColumnHeader,双击如图红框中内容
添加如下代码
private void gridView1_CustomDrawColumnHeader(object sender, DevExpress.XtraGrid.Views.Grid.ColumnHeaderCustomDrawEventArgs e)
{
if (e.Column!=null&&e.Column.Caption=="Selection")
{
e.Info.Caption = "选择";
}
}
运行之后,界面如图所示
接下来我们控制只能选一行,在RowCellClick事件中控制
代码如图所示
private void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
{
if (e.Column.Caption == "Selection")
{
if (gridView1.SelectedRowsCount > 0)
{
for (int i = 0; i < this.gridView1.RowCount; i++)
{
// MessageBox.Show(this.gridView1.IsRowSelected(i).ToString() + "\n" + this.gridView1.FocusedRowHandle.ToString() + "\n" + i.ToString() + "\n" +
//gridView1.SelectedRowsCount);
if (e.Clicks == 1 && this.gridView1.IsRowSelected(i) && this.gridView1.FocusedRowHandle.ToString().Equals(i.ToString()) == false )
{
this.gridView1.UnselectRow(i);
}
}
}
}
}
运行效果
参考链接
GridControl中复选框 动态取消选中_weixin_30692143的博客-CSDN博客
GridControl 设置自带选中复选框及设置该列列头名称_weixin_33915554的博客-CSDN博客