找回密码
 立即注册

QQ登录

只需一步,快速开始

xto95000

中级会员

2

主题

12

帖子

918

积分

中级会员

积分
918

活字格认证

最新发帖
xto95000
中级会员   /  发表于:2014-1-20 12:56  /   查看:14286  /  回复:15
初学Spread,请教一下,C#查询一个DataTable到Spread的DataSource属性在画面上显示,有一列日期,需要按照自定义格式显示,尝试修改了该列的CellType属性(改为DataTime,并使用用户自定义格式)之后,运行画面,格式没有改变,请问有可能是什么原因?(我希望不通过代码控制格式,做画面的时候设置好控件的属性去控制格式,我已设置DataAutoCellType为False,还有就是为了让整个表格只读,我设置了Locked属性为True)

15 个回复

倒序浏览
roger.wang
社区贡献组   /  发表于:2014-1-20 14:07:00
沙发
回复 1楼xto95000的帖子

问题收到了,“CellType属性(改为DataTime,并使用用户自定义格式)之后,运行画面,格式没有改变”。

导致这个的因素很少,能给提供一个简易demo吗?  不用数据库方式,通过设计器或者后台赋值DateTime,我帮您定位定位。
回复 使用道具 举报
xto95000
中级会员   /  发表于:2014-1-20 14:52:00
板凳
环境是日版的Vs2008,稍微整理了一下,烦请看下吧

CDAA_A003.rar

37.59 KB, 阅读权限: 10, 下载次数: 2

Demo

回复 使用道具 举报
xto95000
中级会员   /  发表于:2014-1-20 14:55:00
地板
回复 2楼roger.wang的帖子

呃,貌似没点回复,Demo在3楼
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-1-20 17:23:00
5#
回复 4楼xto95000的帖子

demo看到,运行了。

1 在Design里设置了第3列为DataTime数据类型
2 在代码中绑定了一个DataTable---其中第3列为一个string的“2014/01/17 13:07:00”

在CDAA_A003.Designer.cs中,单元格的CellType被设置为TextCellType,导致日期格式不起作用。
回复 使用道具 举报
xto95000
中级会员   /  发表于:2014-1-20 17:37:00
6#
回复 5楼roger.wang的帖子

呃,难道在Design中设定好还不够,需要再在.cs文件中再写一遍么?
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-1-20 17:47:00
7#
回复 6楼xto95000的帖子

在Design中,设置列为DateTime类型, 设置的Cell为TextCellType, 故Cell的单元格类型为Text类型的。

这个可通过CDAA_A003.Designer.cs文件查看。
回复 使用道具 举报
xto95000
中级会员   /  发表于:2014-1-20 17:57:00
8#
回复 7楼roger.wang的帖子

最开始我是这么认为的,在Design中,只要把列的CellType设置好,那么不管打印多少条数据,那么这一整列都是同一个数据类型,这么理解是不是有问题?还是说,只要在Design中,把第一行的每一列的每个单元格设置好指定CellType,那么不管打印多少条数据,都会按第一行的每个单元格CellType打印?
回复 使用道具 举报
xto95000
中级会员   /  发表于:2014-1-20 18:25:00
9#
回复 7楼roger.wang的帖子

我刚才又自己试了试,Design中我就放置了一行,我把这一行的CellType和这一行中每个单元格的CellType都设置成了None,只在Column中根据需要设置这一行的CellType,这样再运行就得到了我想要的效果,这么解决应该可以吧(Ps:行,列,单元格,这三者的CellType的优先级能说下吗?顺便再提几个问题,怎么设置表头不可选呢,因为我一点表头,整个表格都选中了。怎么设置初始化的显示行数呢,比如现在只有一行数据,但是希望填充空白行把整个表格填充满,该如何设置呢,这几个属性找的比较痛苦。。。)
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2014-1-21 10:49:00
10#
回复 9楼xto95000的帖子

8楼、9楼的问题我一块回复了:
问题1: CellType的优先级---优先级以最后一次赋值的为准。
        如果为None则相当于没有写代码,默认效果。 这个可通过Design.cs文件查看。

问题2: 整个表格不全选,设置下面代码
      
  1.             fpSpread1.ActiveSheet.SelectionPolicy = FarPoint.Win.Spread.Model.SelectionPolicy.Range;
  2.             fpSpread1.ActiveSheet.SelectionUnit = FarPoint.Win.Spread.Model.SelectionUnit.Cell;
复制代码


问题3: 显示行数,设置这个属性
  
  1. fpSpread1.ActiveSheet.RowCount = 100;
复制代码

      
Spread的操作和Excel非常类似,也比较好上手。
这里有一本中文手册,可参考学习:《Spread for WinForms 表格控件 V7.0 使用指南(中文)》
http://www.gcpowertools.com.cn/support/document.htm
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部