以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=65235)

--  作者:lmlptj
--  发布时间:2015/3/12 9:28:00
--  [求助]
我在表("物料信息")datacolchanging事件中写了如下代码:
If E.DataCol.Name = "物料编号" Then
    Dim DR As DataRow = DataTables("物料信息").Find("物料编号 = \'" & E.NewValue & "\'")
    If DR IsNot Nothing Then
        MessageBox.Show("您输入的编号已存在,请重新输入","关键字段重复")
        E.Cancel = True
    End If
End If


但在窗口中,如果输入重复值会再现两次信息对话框(红色方框标记)!!,也就是要按两次确定键!!!!何解??


图片点击可在新窗口打开查看此主题相关图片如下:360截图20150312092747331.jpg
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2015/3/12 9:30:00
--  
 检查的代码不要写到Datacolchanged事件,你写到TextBox控件对应的事件即可。
--  作者:有点甜
--  发布时间:2015/3/12 9:31:00
--  
 比如可以写到 Validatting 事件
--  作者:lmlptj
--  发布时间:2015/3/12 9:41:00
--  
检查一,表事件没有选错!!

帮助里也有这么一段话,我几乎是完全照抄的,咋还会出现两次对话框咧???图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看




图片点击可在新窗口打开查看此主题相关图片如下:21.jpg
图片点击可在新窗口打开查看


[此贴子已经被作者于2015/3/12 9:43:21编辑过]

--  作者:Bin
--  发布时间:2015/3/12 9:46:00
--  
由于你的是窗口控件, 可能是输入了.触发事件, 你点确定取消,  控件又变为空白,又触发一次事件.

如果你只在窗口编辑,可以把代码写到控件Validatting 事件

--  作者:有点甜
--  发布时间:2015/3/12 9:46:00
--  
 跟你说了啊,你写到控件的 Validatting 事件啊
--  作者:lmlptj
--  发布时间:2015/3/12 9:50:00
--  
谢谢老师哦!!!已经写入Validating事件
但我就不明白,之前那段代码为什么会出现两次!

--  作者:Bin
--  发布时间:2015/3/12 9:51:00
--  
原因看5楼
--  作者:有点甜
--  发布时间:2015/3/12 9:51:00
--  
以下是引用lmlptj在2015/3/12 9:50:00的发言:
谢谢老师哦!!!已经写入Validating事件
但我就不明白,之前那段代码为什么会出现两次!

 

5楼,已经跟你说了