以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何判断窗口TextBox内容是否改变  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=26586)

--  作者:Gryvip
--  发布时间:2012/12/9 1:39:00
--  [求助]如何判断窗口TextBox内容是否改变
求教各位师兄,为了禁止列内容重复,写了以下代码

If e.Sender.Value = DataTables("工程信息").GetComboListString("工程简称")
    If e.Sender.Value IsNot e.Sender.NewValue Then
        MessageBox.Show("此《工程简称》已经存在,不可以重复,请修改!")
        e.Cancel = True
    End If
End If

遇到以下错误,请指教,谢谢


图片点击可在新窗口打开查看此主题相关图片如下:窗口textbox内容改变.jpg
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:错误提示.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2012-12-9 1:43:26编辑过]

--  作者:zerov
--  发布时间:2012/12/9 7:38:00
--  
应该先定义textbox的newvalue值
--  作者:blackzhu
--  发布时间:2012/12/9 9:45:00
--  
文本框不存在新值和旧值的.你现在是绑定的,请在表事件中写.
--  作者:程兴刚
--  发布时间:2012/12/9 12:12:00
--  
他的代码不单单是这个问题,这样避免重复是达不到实效的!
--  作者:狐狸爸爸
--  发布时间:2012/12/9 12:31:00
--  

是的,既然是绑定,就用DataColchanging事件:

 

http://www.foxtable.com/help/topics/0624.htm

 


--  作者:Gryvip
--  发布时间:2012/12/9 13:15:00
--  
在表事件DataColchanging中设置以下代码,已解决问题,谢谢各位的热心帮助。 

If e.DataCol.Name = "工程简称" Then
    Dim dr As DataRow 
    dr = e.DataTable.Find("工程简称 = \'" & e.NewValue & "\'")
    If dr IsNot Nothing Then
        MessageBox.Show("此《工程简称》已经存在,不可以重复,请修改!")
        e.Cancel = True
    End If
End If

--  作者:unverse
--  发布时间:2012/12/9 23:24:00
--  
应该用datatable的FIND功能查询一下。是否存在,如果存在则提示。取消,如果不存在则继续。。