以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于项目中动态加载代码的写法  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=117043)

--  作者:ap9709130
--  发布时间:2018/4/4 16:40:00
--  关于项目中动态加载代码的写法
老师

我现在在做一个项目,基本的代码都是动态加载的.现在试了一下速度都可以达到要求.

但是在一些事件动态加载时,e 参数的写法不会,请问一下,要怎么写?
HttpRequest事件的,在移动帮助里有是这样写:Dim e As RequestEventArgs = args(0)

如果是项目事件中,NetworkAvailabilityChanged 中要引用e参数,要怎么写? ....
窗口事件中 如果要引用 enter 事件中,e 参数要怎么写? ....

还在表事件上中的DataColChanged 和 DoubleClick 要怎么写? ...

--  作者:有点甜
--  发布时间:2018/4/4 16:44:00
--  

如果要问的是代码怎么写,这样写

 

Dim e As object = args(0)


--  作者:ap9709130
--  发布时间:2018/4/4 22:50:00
--  
老师

我试了一下,好像会有错误.我的代码如下:

Dim e As object = args(0)  //直接写到项目中不用这个
If e.IsAvailable = True Then
    If Connections.TryConnect("Provider=SQLOLEDB.1;Password=@******#;Persist Security Info=True;User ID=sa;Initial Catalog=aaa;Data Source=1XX.XX.XX.XX") = True Then
        Vars("wlpd") = True
MessageBox.show(0)
    Else
        Vars("wlpd") = False
MessageBox.show(1)
    End If
Else
    Vars("wlpd") = False
MessageBox.show(2)
End If

代码如果直接定在项目的NetworkAvailabilityChanged 事件中是没有问题的. 

但是如果我把代码动态的加入到函数中  在第一句代码中:Dim e As object = args(0) 加入这个

然后用:Functions.Add("test",Code)
Functions.Complie()
可以加入进去不会报错


但是在NetworkAvailabilityChanged 事件中写入:

Functions.Execute("test")


当触发事件时,就会报错:错误如下:


.NET Framework 版本:2.0.50727.8825

Foxtable 版本:2018.3.3.1

错误所在事件:自定义函数test

详细错误信息:

调用的目标发生了异常。

索引超出了数组界限


是什么原因?

--  作者:有点甜
--  发布时间:2018/4/4 22:58:00
--  

改成

 

Functions.Execute("test", e)