找回密码
 立即注册

QQ登录

只需一步,快速开始

cskg0001

初级会员

33

主题

72

帖子

219

积分

初级会员

积分
219

活字格认证微信认证勋章

cskg0001
初级会员   /  发表于:2016-8-2 11:48  /   查看:2998  /  回复:3
C1 2015V3  Vs2010
C1FlexGrid  的SelectedMode=ListBox
在FlexGrid中假如有四行,我要删除选择的行? (数据库绑定模式)
现在假如我都要删除!
2种选择方式
1。用鼠标点击第一行后,直接拉到最后一行(选择了四行)
2。按住CTRL后选择每一行(选择了四行)

调试发现。FlexGrid的Rows.Selected.Count 都是4,每一行的Selected属性都是True
但是执行下面代码:VB
For i=FlexGrid.Rows.Count-1 to FlexGrid.Rows.Fixed step -1   '从最大行开始判断
if FlexGrid.rows(i).Selected=true then
   flexgrid.rows.Remove(i)   '//该行选中则移除
end if
next
错误现象:
上面第2个选择方式没有问题,4行都会移出,第一个选择方式,只移除第一和最后一行
调试时发现:当第一次执行   flexgrid.rows.Remove(i)  后,第二和第三行的Selected=False  第一行为True

请帮忙解决下!(非数据绑定模式好像没问题)



3 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2016-8-2 12:25:06
沙发
首先两种选择方式选出的结果是不一样的。
1.只有一片区域,包含四行。
2.选择了四片区域,每片区域有一行。

因此删除的结果也是不同的。删除掉一个区域,不会影响其他区域。但是对于1,删除一个区域中的一行,除了行数和行index发生了改动,还会重新进行选择,会顺延选择四行。

因此针对第一种情况,应该先拿到选择的行的集合,然后再删除,而不是一边删除一边判断。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
cskg0001
初级会员   /  发表于:2016-8-2 12:39:47
板凳
了解了。非常感谢
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-8-2 14:15:20
地板
cskg0001 发表于 2016-8-2 12:39
了解了。非常感谢

不用客气。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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