以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]好像新版CurrentChanged代码return有问题?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97518)

--  作者:浙江仔
--  发布时间:2017/3/14 8:55:00
--  [求助]好像新版CurrentChanged代码return有问题?
之前版本没有报错,但是用了新版后 CurrentChanged 代码报错

加入了提示,发现是
If e.Table.Current Is Nothing Then \'如果Current为Nothing
messagebox.show("1")
    Return \'则返回
End If

messagebox.show("2")


当筛选是,当前表没有显示记录时,代码执行到了
messagebox.show("1")和messagebox.show("2"),真奇怪

--  作者:浙江仔
--  发布时间:2017/3/14 9:02:00
--  
重新起一个空白项目,倒是没有这个问题
--  作者:有点蓝
--  发布时间:2017/3/14 9:06:00
--  

删除项目里的bin目录,重启项目试试


--  作者:浙江仔
--  发布时间:2017/3/14 9:36:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


--  作者:浙江仔
--  发布时间:2017/3/14 9:38:00
--  
帮我看一下吧,输入框输入“测”,再输入“试”
与直接输入“测试”,触发的代码不同

CurrentChanged


If e.Table.Current Is Nothing Then \'如果Current为Nothing
messagebox.show("1")
    Return \'则返回
End If

messagebox.show("2")

--  作者:有点蓝
--  发布时间:2017/3/14 9:44:00
--  

TextChanged本来就是这样,只要有改变就会触发

 

分别输入2个字符,触发2次

 

同时输入2个字符,触发一次


--  作者:浙江仔
--  发布时间:2017/3/14 10:01:00
--  
同时输入2个字符,提示1,又提示2,这就不对了啊

按理触发了1,就return了,怎么还触发2呢?

--  作者:有点蓝
--  发布时间:2017/3/14 10:31:00
--  

测试了一下,如果是从输入法输入的,会逐个字填入文本框,然后触发多次TextChanged。

 

5楼的问题是有messagebox,这个提示框会影响到事件的执行顺序,不在这里使用messagebox就正常了,可以使用Output.Show输出到命令窗口中查看


--  作者:浙江仔
--  发布时间:2017/3/14 10:36:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目.foxdb


输入测试
报错问题怎么解决?

--  作者:浙江仔
--  发布时间:2017/3/14 11:26:00
--  
以下是引用有点蓝在2017/3/14 10:31:00的发言:

测试了一下,如果是从输入法输入的,会逐个字填入文本框,然后触发多次TextChanged。

 

5楼的问题是有messagebox,这个提示框会影响到事件的执行顺序,不在这里使用messagebox就正常了,可以使用Output.Show输出到命令窗口中查看

 

不能用messagebox么?

 

没有messagebox,也会有return的问题啊,提示代码错误

 

.NET Framework 版本:2.0.50727.5420
Foxtable 版本:2016.7.29.1
错误所在事件:Person_info,CurrentChanged
详细错误信息:
未将对象引用设置到对象的实例。