找回密码
 立即注册

QQ登录

只需一步,快速开始

xjsxjs197
论坛元老   /  发表于:2014-6-25 09:28  /   查看:4472  /  回复:3
C1Gird的行、列、或这Cell上都有Format属性,对应一些常用的比如数字的Format,我写成:#,###都没有问题。
现在想对某个字符串特殊格式化,比如:数据是aaabbb,Grid显示的时候需要变成:aaa-bbb,
有没有办法通过设置Format、或者设置DisplayData的方式实现。

补充:
1:C1Grid里有GetDataDisplay方法,没有相对应的SetDataDisplay方法吗?如果有,我就可以在AfterEdit事件中自己格式化了。
2:使用EditMask方式,可以解决上面的问题,但是........,前提好像必须是使用Grid自己的TextBox Editor。现在的有特殊的业务需求,必须使用自定义的TextBox Editor,即使设置了EditMask,最终显示出的字符串,还是aaabbb,不是想要的aaa-bbb。

3 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2014-6-25 17:26:00
沙发
回复 1楼xjsxjs197的帖子

先回答补充里面的问题:
1.C1FlexGrid没有SetDataDisplay方法。
2.自定义的TextBox Editor的EditMask被设置后,Editor被加载的时候才会起作用,所以最终显示的时候依然不会显示EditMask所设置的格式。

针对这个问题,建议使用FlexGrid.OwnerDrawCell自已去画。
比如隐藏已经输入并且不需要编辑的文字。参考代码如下:
  1. private void c1FlexGrid1_OwnerDrawCell(object sender,
  2. C1.Win.C1FlexGrid.OwnerDrawCellEventArgs e)
  3. {
  4. if (e.Row >= this.c1FlexGrid1.Rows.Fixed &&
  5. this.c1FlexGrid1.Cols[e.Col].Name == "Password")
  6. {
  7. e.Text = new string('*', e.Text.Length);
  8. }
  9. }
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
xjsxjs197
论坛元老   /  发表于:2014-6-27 08:06:00
板凳
非常感谢,我回去试试
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-6-27 09:56:00
地板
回复 3楼xjsxjs197的帖子

好的,若是有问题可以继续交流。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部