以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  datacolchanging事件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=63060)

--  作者:rjh4078
--  发布时间:2015/1/13 10:37:00
--  datacolchanging事件

Select Case e.DataCol.name
   
    Case "出库类型"
        If e.OldValue Is Nothing Then
            Return
        End If
       
        If e.NewValue IsNot Nothing AndAlso e.NewValue<>e.OldValue Then
            e.Cancel=True
            MessageBox.show("该出库类型下已有明细.如果要切换出库类型,请删除之前类型下的明细或重新开单!")
           
        End If
   
   
   
End Select

 

这段代码 在符合条件的时候为什么会执行2次?弹出2次对话框?


--  作者:Bin
--  发布时间:2015/1/13 10:40:00
--  
可能是其他东西影响吧,上个例子看看.
--  作者:有点甜
--  发布时间:2015/1/13 10:42:00
--  

 测试了一下,编辑表,只弹出一次。

 

 如果你是绑定控件的话,按下tab或者enter都是会弹出两次的,建议直接把代码写到控件里检测。


--  作者:Bin
--  发布时间:2015/1/13 10:43:00
--  
你这代码是想做什么? 不让修改单元格的值?
--  作者:rjh4078
--  发布时间:2015/1/13 11:11:00
--  

回bin老师 不是 我去掉了一个变量判断IF语句 经检查 是甜老师说的这个问题 代码移到控件就OK了


--  作者:rjh4078
--  发布时间:2015/1/13 13:43:00
--  

老师们 如果要取消控件向字段写值 要在控件的哪个事件写代码

现在遇到的问题就是 放在datacolchanging里面非常方便 能实现需求 但是提示框总是会弹2次

放在控件里无法取消不符合条件的值


--  作者:有点甜
--  发布时间:2015/1/13 14:05:00
--  

 1、在enter事件记录原值;

 

 2、离开的时候判断,恢复原值。