找回密码
 立即注册

QQ登录

只需一步,快速开始

xuxs

高级会员

50

主题

138

帖子

1086

积分

高级会员

积分
1086

活字格认证微信认证勋章

xuxs
高级会员   /  发表于:2015-12-31 11:00  /   查看:7725  /  回复:8
由于项目需要写了如下的VB.NET的代码:
首先在Form_Load事件中设置了FlexGrid的第二列的DataTyle为Long类型,同时设置该列剧中对齐(CenterCenter)代码如下:

  1. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  2.     Me.C1FlexGrid1.Cols(1).DataType = GetType(Long)
  3.     Me.C1FlexGrid1.Cols(1).TextAlign = C1.Win.C1FlexGrid.TextAlignEnum.CenterCenter
  4. End Sub
复制代码


注意:由于上面代码设置了居中对齐,这会导致FlexGrid在单元格中输入的数字过长时会折行(当前列宽度小,但是输入的数字超过列宽时如果继续输入会折行,在不调整行高的情况下此时看不到上面输入的数字了,很不方便)为了解决输入折行问题在FlexGrid的SetupEditor事件中添加了如下代码:
  1. Private Sub C1FlexGrid1_SetupEditor(sender As Object, e As C1.Win.C1FlexGrid.RowColEventArgs) Handles C1FlexGrid1.SetupEditor
  2.     CType(Me.C1FlexGrid1.Editor, TextBox).Multiline = False
  3. End Sub
复制代码


上面的代码主要是不让其折行显示(根据我的实验,当列的TextAlign枚举值为CenterXXX或者RightXXX的时候都会折行,其他枚举类型时则不会折行,这是为什么?)


按照上面的代码接下来发现了一个有意思的事情:当前列不折行了,但是当输入的数字位数为1位时,后面的数字不能够替代前面的数字,例如,第一次我在单元格上输入一个数字“1”,焦点离开之后
我再次点击该单元格输入一个数字“2”,此时焦点再离开后,该单元格仍然显示1,原先输入的“2”没有了。总之只要是输入一位的数字,后面输入的不能够替换掉第一次输入的。
但是更有意思的是如果我输入的数字位数为2位或者更多时就不会存在这个问题了,输入“11”就可以替换掉原来的1了。


目前我做的项目由于此问题产生了较大范围的BUG,所以想确认一下
1:这个现象是不是FlexGrid的BUG?
2:我如果想实现上面所写的功能(数值类型列,居中对齐显示,输入时不折行)有没有其他更好的办法?

8 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-12-31 12:19:00
沙发
回复 1楼xuxs的帖子

谢谢您的反馈。预祝您元旦快乐。
针对您提到的问题进行了测试,造成此问题的原因是您设置DataType为long。long的最大值是9223372036854775807。
如果您输入的数字大于这个值,离开编辑状态存储的时候,由于错误会回滚到上一次输入的合法的值。、
您输入数字都是有最大值和最小值限制的,您输入的合法值,就不会产生此现象。

如果您想显示数字并且没有位数的限制,建议不要使用DataType,而是设置该列的Format属性。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
xuxs
高级会员   /  发表于:2015-12-31 13:02:00
板凳
你可能理解错了我的意思,我输入的时候只输入了一个数字 1,远远小于9223372036854775807,如果按照我上面的代码写的第一次输入1,焦点离开,第二次再在该单元格输入2,焦点离开后的值仍为1


而且如果只设置Format属性的话 如果不配合DataType使用,Format是不生效的
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-1-4 09:27:00
地板
回复 3楼xuxs的帖子

很抱歉我这里不能通过重现输入数字1,焦点离开后,重新输入值不能存在的问题。
是有什么必然重现的步骤么?
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
xuxs
高级会员   /  发表于:2016-1-4 15:38:00
5#
我给你做了一个Sample,用VS2010的环境做的,具体内容请参照代码,操作步骤在工程中的readMe.txt中

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-1-4 17:27:00
6#
回复 5楼xuxs的帖子

好的,谢谢您的反馈。
我们测试后给您回复。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-1-5 15:43:00
7#
回复 5楼xuxs的帖子

谢谢您提供的Demo,您的问题我们重现了。
已经提交到产品组进行修复,BugID:141342。
很抱歉给您带来的不便,如果有任何的反馈我们会在第一时间通知您。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
xuxs
高级会员   /  发表于:2016-1-6 09:12:00
8#
恩 好的
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-1-6 17:25:00
9#
回复 8楼xuxs的帖子

谢谢反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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