以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  用户切换后提示未将对象引用到实例  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=89919)

--  作者:天若千颖
--  发布时间:2016/9/1 11:49:00
--  用户切换后提示未将对象引用到实例
通过Messagebox调试,从第一条语句就错了,是想实现,本来系统所有的导航不可用,但是当用户切换之后,又可用了。

以下代码放在项目的LoadUserSetting事件中,当用户切换的时候没有问题,但是,当重新登系统的时候,会提示未将对象引用到实例的错误。

难道是新登陆的时候当项目还没有打开,这些窗口不存在吗?但是,当我判断该窗口是否存在,如果存在才执行,也是同样错误。

\'导航窗口所有按钮可用
For Each npg  As WinForm.NavPage In Forms("导航窗口").Controls("常用查询导航").NavPages
  For Each c As WinForm.Control In npg.Children  
      c.enabled = True
  Next
Next
For Each npg  As WinForm.NavPage In Forms("导航窗口").Controls("数据资料导航").NavPages
  For Each c As WinForm.Control In npg.Children  
    c.enabled = True
   Next
Next
If Forms("主窗口").Controls("Label1").Visible = True Then   \'主窗口提示信息隐藏
Forms("主窗口").Controls("Label1").Visible = False
End If
If Forms("主窗口").Controls("激活按钮").Visible = True Then \'激活主窗口的激活按钮
Forms("主窗口").Controls("激活按钮").Visible = False
End If

--  作者:天若千颖
--  发布时间:2016/9/1 11:51:00
--  
.NET Framework 版本:2.0.50727.5420
Foxtable 版本:2016.7.29.1
错误所在事件:项目,LoadUserSetting
详细错误信息:
未将对象引用设置到对象的实例。

--  作者:天若千颖
--  发布时间:2016/9/1 11:54:00
--  
If Forms.Contains("导航窗口") Then  
……

还是有同样的错误,到底是哪里错了呢?请教版主。

--  作者:有点蓝
--  发布时间:2016/9/1 14:05:00
--  
If Forms("导航窗口").Opened Then  

窗口的权限码最好是放到窗口afterload事件

LoadUserSetting的时候关闭窗口在打开

--  作者:天若千颖
--  发布时间:2016/9/1 16:31:00
--  
If Forms("导航窗口").Opened Then   这样确实解决了。

我中午写成 If Forms("导航窗口").Open Then   难怪提示表达式不对。