Foxtable(狐表)用户栏目专家坐堂 → [求助]应用程序中发生了无法处理的异常


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

主题:[求助]应用程序中发生了无法处理的异常

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


加好友 发短信
等级:小狐 帖子:394 积分:4047 威望:0 精华:0 注册:2017/3/24 15:10:00
[求助]应用程序中发生了无法处理的异常  发帖心情 Post By:2019/5/27 18:38:00 [只看该作者]

应用程序中发生了无法处理的异常 
Dim kqjip As String=e.Form.Controls("IP").value
    Dim kqjsn As String
    Dim axCZKEM1 As New zkemkeeper.CZKEM
    Dim bIsConnected = axCZKEM1.Connect_Net(kqjip, "4370") '测试机器连接是否正常
    If bIsConnected = False Then
        MessageBox.show("匹配连接失败,请检查考勤机是否通电并且IP地址是否设置正确!" & kqjip)
        e.Form.Controls("IP").value=""
    Else
        axCZKEM1.GetSerialNumber (0,kqjSN)
        e.Form.Controls("序列号").value=kqjsn
        e.Form.Controls("状态").value="正常"      
        MessageBox.Show("IP地址为: " & kqjip & " 的考勤机匹配登记成功,可以正常使用!", "提示")
        _KqjIP  = e.Form.Controls("IP").value           '考勤机IP
        _KqjSN  = e.Form.Controls("序列号").value       '考勤机SN
        _KqjFX  = e.Form.Controls("分校列表").value     '考勤机所属分校
        _KqjFXBH  = e.Form.Controls("分校编号").value   '考勤机所属分校
        _KqjZT  =  "正常" '考勤机当前状态
        Registry.SetValue("HKEY_CURRENT_USER\Software\YfshErp","kqjip",_KqjIP)
        Registry.SetValue("HKEY_CURRENT_USER\Software\YfshErp","kqjsn",_KqjSN)
        Registry.SetValue("HKEY_CURRENT_USER\Software\YfshErp","kqjfx",_Kqjfx)
        Registry.SetValue("HKEY_CURRENT_USER\Software\YfshErp","kqjfxbh",_Kqjfxbh)
        Registry.SetValue("HKEY_CURRENT_USER\Software\YfshErp","kqjzt",_Kqjzt)
        e.Form.Close
    End If

只要是加上“ e.Form.Close” 这句代码就会报错,不加不行,必须关掉这个窗口.

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


加好友 发短信
等级:小狐 帖子:394 积分:4047 威望:0 精华:0 注册:2017/3/24 15:10:00
  发帖心情 Post By:2019/5/27 18:43:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20190527184150.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/5/27 19:37:00 [只看该作者]

代码放在哪个事件的?

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


加好友 发短信
等级:小狐 帖子:394 积分:4047 威望:0 精华:0 注册:2017/3/24 15:10:00
  发帖心情 Post By:2019/5/28 9:01:00 [只看该作者]

TextBox  的ValueChanged中……

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


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

你的beforeclose、afterclose事件,写了什么代码?

 

你这个窗口是模式窗口吗?通过什么方式打开窗口的?贴出对应事件代码。


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


加好友 发短信
等级:小狐 帖子:394 积分:4047 威望:0 精华:0 注册:2017/3/24 15:10:00
  发帖心情 Post By:2019/5/28 20:28:00 [只看该作者]

1、beforeclose、afterclose事件,没有代码。

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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/5/28 20:32:00 [只看该作者]

上传具体实例测试

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


加好友 发短信
等级:小狐 帖子:394 积分:4047 威望:0 精华:0 注册:2017/3/24 15:10:00
  发帖心情 Post By:2019/5/28 20:32:00 [只看该作者]

1、beforeclose、afterclose事件,没有代码。
2、窗口是模式窗口。
3\通过菜单打开的窗口.
窗口表事件

窗口与控件事件

考勤机注册登记_AfterLoad

MessageBox.show("考勤机注册登记前,请确保设备接通电源并连接网络!","警告!",MessageBoxButtons.OK,MessageBoxIcon.Warning)

If FileSys.FileExists("C:\Windows\System32\zkemkeeper.dll") =False Then
        
        Dim Proc As New Process '定义一个新的Process
        Proc.StartInfo.FileName = ProjectPath & "\SDK x86\Register_SDK.bat" '指定要打开的文件
        proc.StartInfo.WorkingDirectory = ProjectPath & "\Attachments\"
        Proc.Start()
End If

'Dim jqlb As WinForm.ComboBox = e.Form.Controls("机器列表")
'Dim kqjip As WinForm.TextBox = e.Form.Controls("IP")
'Dim kqjsn As WinForm.TextBox = e.Form.Controls("序列号")
Dim fxlb As WinForm.ComboBox = e.Form.Controls("分校列表")
If _usergroup.Contains("管理员组") Then
    fxlb.ComboList="所有校区|" & DataTables("分校").SQLGetComboListString("分校名称")
Else
        fxlb.ComboList = _Userfxlb
End If

If _kqjIP <>"" Then
fxlb.value=_kqjfx
End If

考勤机注册登记_IP_ValueChanged

Dim kqjip As String=e.Form.Controls("IP").value
Dim kqjsn As String
Dim axCZKEM1 As New zkemkeeper.CZKEM
Dim bIsConnected = axCZKEM1.Connect_Net(kqjip, "4370") '测试机器连接是否正常
If bIsConnected = False Then
    MessageBox.show("匹配连接失败,请检查考勤机是否通电并且IP地址是否设置正确!" & kqjip)
    e.Form.Controls("IP").value=""
Else
    axCZKEM1.GetSerialNumber (0,kqjSN)
    e.Form.Controls("序列号").value=kqjsn
    e.Form.Controls("状态").value="正常"
    MessageBox.Show("IP地址为: " & kqjip & " 的考勤机匹配登记成功,可以正常使用!", "提示")
    _KqjIP  = e.Form.Controls("IP").value           '考勤机IP
    _KqjSN  = e.Form.Controls("序列号").value       '考勤机SN
    _KqjFX  = e.Form.Controls("分校列表").value     '考勤机所属分校
    _KqjFXBH  = e.Form.Controls("分校编号").value   '考勤机所属分校
    _KqjZT  =  "正常" '考勤机当前状态
    Registry.SetValue("HKEY_CURRENT_USER\Software\YfshErp","kqjip",_KqjIP)
    Registry.SetValue("HKEY_CURRENT_USER\Software\YfshErp","kqjsn",_KqjSN)
    Registry.SetValue("HKEY_CURRENT_USER\Software\YfshErp","kqjfx",_Kqjfx)
    Registry.SetValue("HKEY_CURRENT_USER\Software\YfshErp","kqjfxbh",_Kqjfxbh)
    Registry.SetValue("HKEY_CURRENT_USER\Software\YfshErp","kqjzt",_Kqjzt)
    e.Form.Close
End If

考勤机注册登记_分校列表_ValueChanged

Dim fxlb As WinForm.ComboBox = e.Form.Controls("分校列表")

If fxlb.value Is Nothing Or fxlb.value="所有校区" Then
    MessageBox.show("请选择需要添加设备的分校!")
    Return
End If
e.Form.Controls("分校编号").value=DataTables("分校").SQLFind("分校名称='" & fxlb.value & "'")("分校编号")
e.Form.Controls("登记人").value=_username
e.Form.Controls("登记日期").value=Functions.Execute("服务器时间").Today

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


加好友 发短信
等级:超级版主 帖子:106665 积分:542508 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/5/28 21:11:00 [只看该作者]

嗯,我这边也没有设备测试。

如果ValueChanged事件用不了,就只能添加一个按钮,点击按钮关闭窗口

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


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

 

贴出打开窗口的对应代码

 

 


 回到顶部