x_g 发表于 2015-8-19 17:19:00

请教关于multirow 7.0 ,checkboxcell

请教关于multirow 7.0 ,checkboxcell,如何让选中的图案不是对勾,而是一个叉"X",是不可用的状态

dafo 发表于 2015-8-19 18:43:00

CheckBoxCell不能自定义选择框的画法,它是调用系统默认的。
对于你的需求你可以自己实现CustomCheckBoxCell, 让他继承CheckBoxCell,你只需重新实现它的画法逻辑就可以了。
SampleCode:

    public class CustomCheckBoxCell : CheckBoxCell
    {
      protected override void OnPaint(CellPaintingEventArgs e)
      {
            //base.OnPaint(e); Delete CheckBox Drawing.
            e.PaintBackground(e.ClipBounds);
            e.PaintBorder(e.ClipBounds);
            if ((this.IsInEditMode && this.EditedFormattedValue != null && (bool)this.EditedFormattedValue == true)
                || (bool)e.FormattedValue == true)
            {
                e.Graphics.DrawString("X", e.CellStyle.Font, System.Drawing.Brushes.Black, e.CellBounds.Location);
                //Or Draw your image in here.
            }
      }
    }

x_g 发表于 2015-8-19 18:58:00

回复 2楼dafo的帖子

请问CheckBoxCell可以通过某些属性的设置,自定义在不可用状态时,显示的样式吗,

Alice 发表于 2015-8-20 09:48:00

回复 1楼x_g的帖子

谢谢你的反馈。
很抱歉mutliRow7.0的checkbox没有提供相关接口可以改成"x"。

x_g 发表于 2015-8-21 17:38:00

回复 2楼dafo的帖子

没有看见 CheckBoxCellOnPaint这个方法,这个方法能重写

x_g 发表于 2015-8-21 18:16:00

回复 2楼dafo的帖子

用了您的方法,但是选中的时候还是对勾,请问还有其他的方法吗

dafo 发表于 2015-8-24 12:14:00

你需要将你模板中的CheckBoxCell替换为CustomCheckBoxCell 。
我的代码中只是简单的重写了CheckBoxCell的前景画法,你需要根据你的需求重写这个画法。

对于你的需求,只有用这种自定义单元格的方式,没有其他的解决方案了。

Alice 发表于 2015-8-24 16:02:00

回复 7楼dafo的帖子

@dafo版主的方案。

x_g 发表于 2015-8-27 17:41:00

回复 8楼Alice的帖子

了解了,谢谢

iceman 发表于 2015-8-28 15:21:00

回复 9楼x_g的帖子

好的,不客气,有其它问题欢迎继续交流。
页: [1]
查看完整版本: 请教关于multirow 7.0 ,checkboxcell