找回密码
 立即注册

QQ登录

只需一步,快速开始

wangleiecho

中级会员

26

主题

94

帖子

658

积分

中级会员

积分
658

活字格认证

wangleiecho
中级会员   /  发表于:2013-4-29 16:33  /   查看:9873  /  回复:9
版主好,请问 如何改变checkbox选择对号的颜色或者是大小?现在的选中状态不太明显,如果让 对号 更大一些,这样显示起来更明显,或者是改变checkbox单元格颜色,使选中的看起来明显?谢谢版主,祝5.1快乐!

9 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-5-2 12:03:00
沙发
回复 1楼wangleiecho的帖子

你好,
可以通过 CheckBox 点击事件来操作单元格背景色:

  1. private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             FarPoint.Win.Spread.CellType.CheckBoxCellType ck = new FarPoint.Win.Spread.CellType.CheckBoxCellType();
  4.             ck.EditorValueChanged += new EventHandler(ck_EditorValueChanged);
  5.             this.fpSpread1.Sheets[0].Columns[0].CellType = ck;
  6.         }

  7.         void ck_EditorValueChanged(object sender, EventArgs e)

  8.         {
  9.         }
复制代码
回复 使用道具 举报
山水
初级会员   /  发表于:2013-5-2 12:26:00
板凳
还可以通过设置CheckBoxCellType的一些属性例如TextFalse,TextTrue, Picture.True 等使不同的check状态区别更明显。
一个例子代码:
            FarPoint.Win.Spread.CellType.CheckBoxCellType checkBoxCell = new FarPoint.Win.Spread.CellType.CheckBoxCellType();
            checkBoxCell.TextFalse = "Is false";
            checkBoxCell.TextTrue = "Is true";
            checkBoxCell.Picture.True = Image.FromFile("C:\\temp\\1.png");
            checkBoxCell.Picture.False = Image.FromFile("C:\\temp\\4.png");
            this.fpSpread1.ActiveSheet.Cells[1, 1].CellType = checkBoxCell;
回复 使用道具 举报
wangleiecho
中级会员   /  发表于:2013-5-3 18:47:00
地板
版主好,如果void ck_EditorValueChanged(object sender, EventArgs e)事件中写给单元格赋背景色,它本身会再次出发void ck_EditorValueChanged(object sender, EventArgs e),这个方法好像不可行
回复 使用道具 举报
wangleiecho
中级会员   /  发表于:2013-5-3 18:58:00
5#
3楼的方法很好用 ,用图片的方式很好,谢谢3楼 谢谢版主
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-5-3 19:22:00
6#
回复 5楼wangleiecho的帖子

3#V587~
回复 使用道具 举报
wangleiecho
中级会员   /  发表于:2013-5-3 20:17:00
7#
版主好,还有一个问题 当我使用3楼的方法,鼠标点击checkbox单元格的时候,这个时候读取 这个cell的value 发现这个value是null
而当点击的不是这个checkbox单元格的时候,读取这个单元格的value是true或者 false 不是null了。这个是我的用法不对吗?还有别的设置?
回复 使用道具 举报
山水
初级会员   /  发表于:2013-5-6 12:48:00
8#
7楼好,
如果一个CheckBoxCellType所在的Cell从未被赋过值,它的值缺省是null。
当你用鼠标单击一个checkbox单元格时,该单元格进入编辑状态,即使它的check状态改变了,但因为其仍在编辑状态,它改变的值并未被提交给Spread,此时该单元格的值仍然没有变。仅当你提交了该单元格的编辑值后(例如按回车键或单击其他单元格以结束该checkbox单元格的编辑状态),该单元格的值才被真正改变了。
一个小建议: 发帖时请尽量把您遇到的问题的上下文说的清楚些,这样或许我们的回复能更好的帮助您。 例如,对于7楼的帖子,如果您指出了您是在Spread的哪个事件中取Cell的值的,或许我们的回复会更有针对性。
回复 使用道具 举报
wangleiecho
中级会员   /  发表于:2013-5-6 17:05:00
9#
谢谢 8楼 是我调试程序的问题,现在没有bug了 多谢了
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-5-6 17:17:00
10#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部