以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  datacolchanging的bug  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=115546)

--  作者:rjh4078
--  发布时间:2018/3/8 21:06:00
--  datacolchanging的bug
如果把逻辑列绑定到控件checkedbox 点击控件时DataColChanging会被多次触发并且控件状态并不能被cancel掉

例子如下

在表中点击第一列,DataColChanging能够根据条件拦截(cancel掉)
但是在窗口控件中绑定第一列到checkedbox时DataColChanging被多次触发,并且控件的状态并没有被cancel掉
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:bug.rar


--  作者:rjh4078
--  发布时间:2018/3/8 21:49:00
--  
图片点击可在新窗口打开查看
--  作者:有点甜
--  发布时间:2018/3/8 21:53:00
--  

嗯嗯,这个没办法。建议把判断逻辑写到datacolchanged事件去。

 

Select Case e.DataCol.name
    Case "第一列","第二列","第三列"
        If e.NewValue=True Then
            If e.DataRow.Isnull("第四列") Then
                e.DataRow(e.DataCol.name) = False
                MessageBox.show("第四列不能为空!","提示")
            End If
        End If
End Select


--  作者:rjh4078
--  发布时间:2018/3/9 7:33:00
--  
还有个问题 如果当前行为空checkedbox还能选中 这个不太对吧 感觉checkedbox问题很多啊
--  作者:有点甜
--  发布时间:2018/3/9 10:38:00
--  
以下是引用rjh4078在2018/3/9 7:33:00的发言:
还有个问题 如果当前行为空checkedbox还能选中 这个不太对吧 感觉checkedbox问题很多啊

 

使用datacolchanged事件处理,或者,不绑定表列处理。

 

对于checkbox的控制,只要不绑定表列,就灵活很多。