找回密码
 立即注册

QQ登录

只需一步,快速开始

chenf1980

论坛元老

41

主题

147

帖子

9349

积分

论坛元老

积分
9349

活字格认证

chenf1980
论坛元老   /  发表于:2011-6-28 10:47  /   查看:9781  /  回复:14
在MultiRow有一列,进行输入完成后,就按照这一列进行排序。

我在CellEndEdit事件里做了处理,发现鼠标点击该列的单元格错乱了。

鼠标点击单元格,发现焦点都是落在上次选中的单元格上。

什么原因导致的呢?

14 个回复

倒序浏览
neil
论坛元老   /  发表于:2011-6-28 11:19:00
沙发

回复 1# chenf1980 的帖子

请上传示例工程。
回复 使用道具 举报
chenf1980
论坛元老   /  发表于:2011-6-28 11:44:00
板凳
代码在这里

本帖子中包含更多资源

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

x
回复 使用道具 举报
neil
论坛元老   /  发表于:2011-6-28 12:18:00
地板

回复 3# chenf1980 的帖子

排序会引发EndEdit, 而你是在EndEdit中做的排序,而且你又是EditOnEnter的,所以这里出现了循环重入。

建议你在CellValueChanged事件里面做排序。  因为只有输入的值发生了改变才需要做重新排序。
回复 使用道具 举报
chenf1980
论坛元老   /  发表于:2011-6-28 12:30:00
5#
在cellvaluechanged中,还需要对所输入的值进行判断,

如果值是0000,那么就把该单元格的值设置为1111,

结果发现还是进到死循环了。

在设置值之前removehandle也没用。
回复 使用道具 举报
chenf1980
论坛元老   /  发表于:2011-6-28 12:53:00
6#
beginedit里面就算设置了还是不对。。。

版主有其他办法解决吗?
回复 使用道具 举报
neil
论坛元老   /  发表于:2011-6-28 13:51:00
7#

回复 5# chenf1980 的帖子

应该在CellValueChanged里面做排序。

只是你把0000变成1111的操作不应该在CellValueChanged里面完成。
我猜你的需求应该是:如果输入了0000,就把它变成1111。    这个操作从逻辑上讲应该是在Cell的值变成0000之前,就判断如果是0000就直接变成1111,而不是在CellValueChanged事件(这个事件发生时,cell的值已经变成0000了)中,把已经变成0000的cell再改回来。

所以你这个改值的操作应该在CellParsing事件中改。

  Private Sub MyMultirow1_CellParsing(ByVal sender As System.Object, ByVal e As GrapeCity.Win.MultiRow.CellParsingEventArgs) Handles MyMultirow1.CellParsing

        If Object.Equals(e.Value, "0000") Then
            e.Value = "1111"
        End If

    End Sub
回复 使用道具 举报
chenf1980
论坛元老   /  发表于:2011-6-28 14:47:00
8#
嗯,上面的方法确实是可以的。
还差最后一步,就是在cellparsing里面,还需要加个条件
就是画面的第10行 = 该输入的值

如果用gcmultirow.item(10,"C2").value = e.value的话,结果又重新出发了cellparsing事件
回复 使用道具 举报
neil
论坛元老   /  发表于:2011-6-28 15:25:00
9#

回复 8# chenf1980 的帖子

处理Multirow的事件是,  请注意一条重要的原则:  就是如果在事件参数e 里面有的信息,就一定只能用e里面的信息,不要自己重新去Multirow上取一遍,或者设一遍。

像你上面的,就应该使用e.Value, 或者e.RowIndex,或者 e.CellName 来判断,  不应该使用gcmultirow.item
回复 使用道具 举报
chenf1980
论坛元老   /  发表于:2011-6-28 15:28:00
10#
嗯,我也想用e.value,但是对应于第10行的话,该怎么设置第10行的e.value?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部