以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  电话盒子关闭的时候提示 “未将对象引用设置到对象的实例。”  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=127851)

--  作者:ycwk
--  发布时间:2018/11/23 14:48:00
--  电话盒子关闭的时候提示 “未将对象引用设置到对象的实例。”
代码如下,弹出到2 后,就报错,     controls("cbocurchn")  是一个下拉框,没啥问题呀


.NET Framework 版本:2.0.50727.8937
Foxtable 版本:2018.9.9.1
错误所在事件:菜单,关闭设备,Click
详细错误信息:
未将对象引用设置到对象的实例。





msgbox(1)
BriSDKLib.QNV_CloseDevice(BriSDKLib.ODT_SOUND,0)\'关闭声卡控制模块
msgbox(2)
Dim cboCurChn As WinForm.ComboBox = Forms("win_日常问题记录窗口").Controls("cboCurChn")
msgbox(3)
\'删除事件接收
For i As Integer = 0 To cboCurChn.Items.Count - 1
    BriSDKLib.QNV_Event(i,BriSDKLib.QNV_EVENT_UNREGWND,CType(basemainform.Handle, Int32),Nothing,Nothing,0)
Next
msgbox(4)
\'关闭设备
If BriSDKLib.QNV_CloseDevice(BriSDKLib.ODT_ALL, 0) > 0 Then
    cboCurChn.Items.Clear()
    Forms("win_日常问题记录窗口").Controls("cboCurChn").Visible = False
\'    e.Form.Controls("gpbChnID").Visible = False
\'    e.Form.Controls("lblDrv").Visible = False
\'    e.Form.Controls("lblCurChn").Visible = False
\'    e.Form.Controls("btnCloseDrv").Enabled = False
    
    vars("intChannelID") = -1
    If EventForm IsNot Nothing Then
        EventForm.Close() \'关闭信息处理窗口
    End If
    vars("IsEventFormOpened") = False
    AppendStatus("设备已关闭")
    
End If

--  作者:有点甜
--  发布时间:2018/11/23 15:08:00
--  

 

你这个窗口关闭了吧?【win_日常问题记录窗口】,关闭的窗口,无法获取其控件。

 


--  作者:ycwk
--  发布时间:2018/11/23 15:39:00
--  
老师果然厉害,确实是关闭了,把它打开就行了。  但是有个问题,这个窗口是不必要打开的。   所以我想把这个控件去掉,那么我改了代码  
For i As Integer = 0 To cboCurChn.Items.Count - 1
    BriSDKLib.QNV_Event(i,BriSDKLib.QNV_EVENT_UNREGWND,CType(basemainform.Handle, Int32),Nothing,Nothing,0)
Next

改成了:
   \' BriSDKLib.QNV_Event(0,BriSDKLib.QNV_EVENT_UNREGWND,CType(basemainform.Handle, Int32),Nothing,Nothing,0)

现在执行这段代码的时候,又报JIT调试错误,怎么办?


--  作者:有点甜
--  发布时间:2018/11/23 16:00:00
--  

改成

 

Dim channelCount As Integer = BriSDKLib.QNV_DevInfo(0, BriSDKLib.QNV_DEVINFO_GETCHANNELS)

For i As Integer = 0 To channelCount - 1
    BriSDKLib.QNV_Event(i,BriSDKLib.QNV_EVENT_UNREGWND,CType(basemainform.Handle, Int32),Nothing,Nothing,0)
Next