Foxtable(狐表)用户栏目专家坐堂 → 电话盒子关闭的时候提示 “未将对象引用设置到对象的实例。”


  共有1623人关注过本帖树形打印复制链接

主题:电话盒子关闭的时候提示 “未将对象引用设置到对象的实例。”

帅哥哟,离线,有人找我吗?
ycwk
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
电话盒子关闭的时候提示 “未将对象引用设置到对象的实例。”  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/23 15:08:00 [只看该作者]

 

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
ycwk
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1218 积分:8451 威望:0 精华:0 注册:2016/2/2 21:52:00
  发帖心情 Post By: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调试错误,怎么办?


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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

 回到顶部