DEV 中 gridControl1添加checkbox 列

直接在 gridControl1.DataSource要绑定的表里dt增加一个BOOL列dt.Columns.Add("isCheck", System.Type.GetType("System.Boolean")).SetOrdinal(0);即可。但是记得gridControl1需要绑定isCheck列,才能显示出复选框。

设置为多选:
gridView1 .OptionsSelection.MultiSelect = true;
gridView1 .OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.RowSelect;

但是这样有一个BUG。就是不能马上捕捉复选框的改变事件。只能通过gridView1_CellValueChanged等来捕捉,但是有时候我们需要改变的时候就马上捕捉。



我们对之前的改造:

gridControl增加一个编辑列,把编辑列设置为复选框


然后在页面加载的时候把这个的改变事件加入:

private void InitCheckItems()
        {
            repositoryItemCheckEdit1.CheckedChanged += new EventHandler(repositoryItemCheckEdit1_CheckedChanged);
        }
        void repositoryItemCheckEdit1_CheckedChanged(object sender, EventArgs e)
        {
            CheckState check = (sender as DevExpress.XtraEditors.CheckEdit).CheckState;
            if (check == CheckState.Checked)
            {
                你自己要处理的事件
            }
        }

即可。



上面那样的代码,我们可以实现动态的选择。但是有一个小BUG,就是当我们点击选择的时候需要点击2次才能是选中状态。但是这样用户体验度极差!

我们需要在这里改造一下:

在给数据源添加BOOL列的时候,需要循环给该列赋值

foreach (DataRow _Dr in DtUnit.Rows)
                _Dr["isCheck"] = false;

然后把属性EditorShowMode = MouseDown即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值