以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  窗口Enter事件出现错误,找不到原因!  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=141992)

--  作者:hc-mall
--  发布时间:2019/10/16 0:03:00
--  窗口Enter事件出现错误,找不到原因!
Dim yisheng As WinForm.CheckBox = e.Form.Controls("Chkyishen")
Dim nm As String = e.Form.ActiveControl.Name
If  e.Form.ActiveControl.Focused = True Then
    Select Case nm
        Case "Textchanpin","Textdanjia","Textguyuan","Textkehu","Textshuliang","Dateriqi"
            If yisheng.Checked = True Then
                If user.Group <> "经理" Then
                    e.Form.Controls(nm).ReadOnly = BooleanEnum.True
                Else
                    e.Form.Controls(nm).ReadOnly = BooleanEnum.False
                End If
            Else
                e.Form.Controls(nm).ReadOnly = BooleanEnum.False
            End If
        Case "Textjine"
            e.Form.Controls(nm).ReadOnly = BooleanEnum.True
    End Select
End If
-------------------------
窗口Enter事件的代码如上,重新切换用户以后,第一次点窗口空白处就出现错误提示了,个人能力有限找不到原因!出现错误提示框以后程序不崩溃,后面再点就正常了!
错误提示如下:Object variable or With block variable not set.


--  作者:hc-mall
--  发布时间:2019/10/16 2:23:00
--  
原因找到了,Dim nm As String = e.Form.ActiveControl.Name,窗口这个控件应该是没有name属性的!这个应该是个bug。我做了个判断,If e.Form.ActiveControl IsNot Nothing Then就好了!
--  作者:有点蓝
--  发布时间:2019/10/16 8:37:00
--  
不是没有name属性,而是没有处于激活状态的控件