以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  未设置对象变量或with变量块  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=39845)

--  作者:东坡一剑
--  发布时间:2013/9/3 8:53:00
--  未设置对象变量或with变量块

If e.sender.Parent.name = "GroupBox3" Then
    Vars("btnName") = e.Sender.Name
    Forms("洗涤标志").Open()
End If

 

这段代码运行后有如下错误提示,不知是什么原因,请大家指点一下。

 


图片点击可在新窗口打开查看此主题相关图片如下:2013-09-02 14 42 54.png
图片点击可在新窗口打开查看

--  作者:Bin
--  发布时间:2013/9/3 8:55:00
--  
你这还有其他代码吧.上面这段代码是不应该报这个错的. 没有可能性啊.
你把文件发上来看看.

--  作者:东坡一剑
--  发布时间:2013/9/3 9:48:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:例子.zip

例子传上来了
--  作者:东坡一剑
--  发布时间:2013/9/3 9:51:00
--  

我设了两个public全局变量的字典,是不是问题出在这里?

[此贴子已经被作者于2013-9-3 10:14:30编辑过]

--  作者:Bin
--  发布时间:2013/9/3 10:14:00
--  
你的问题是全局CLick事件的第一个判断,没有父容器的时候就报错了.

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:例子.zip




--  作者:东坡一剑
--  发布时间:2013/9/3 10:56:00
--  

的确如您所说,我把代码改为:

If e.sender.name = "添加"  Or  e.Sender.Name = "取消" Then
    Return
End If
        \'If e.Sender.Parent.name = "录入货品信息" Then
             \'Return
         \'End If

If e.sender.Parent.name = "GroupBox3" Then
    Vars("btnName") = e.Sender.Name
    Forms("洗涤标志").Open()
End If

也能正常执行。

但是,用红色代码替换紫色代码后却提示原先同样的错误!

可是,根据以下摘自帮助文件的大字部分,红色代码应该也是可以的。始终不明白,能否进一步指教一下?

 

Parent

返回控件所属的容器。

控件处于不同的容器中,返回的类型也是不同的:

如果控件位于窗口中,那么返回此窗口,类型为WinForm.Form
如果控件位于GroupBox(分组框)中,那么返回此GroupBox,类型为WinForm.GroupBox
如果控件位于Panel(面板)中,那么返回此Panel,类型为WinForm.Panel
如果控件位于TabControl(页面集合)的一个页面中,那么返回此页面,类型为WinForm.TabPage
如果控件位于NavBar(导航栏)的一个页面中,那么返回此页面,类型为WinForm.NavPage
如果控件位于SplitContainer(分区面板)的一个页面中,那么返回此页面,类型为
WinForm.SplitPanel

 

[此贴子已经被作者于2013-9-3 11:07:38编辑过]

--  作者:Bin
--  发布时间:2013/9/3 11:08:00
--  
不用那么纠结,是用我的代码即可.
--  作者:东坡一剑
--  发布时间:2013/9/3 11:11:00
--  

既是学习,知其然而不知其所以然,可能永远无法做到举一反三,可能永远要重复问一些幼稚的问题。

希望能讲解一下,或者给一个学习资料的链接。

[此贴子已经被作者于2013-9-3 14:57:19编辑过]

--  作者:Bin
--  发布时间:2013/9/3 11:24:00
--  
如果你不执行 e.form.close 来关闭窗口的话是没问题的.

但是你关闭了窗口,就会注销了一些东西.然后就找不到了.

你可以去掉 e.form.close 看看,你会发现完美运作.

--  作者:东坡一剑
--  发布时间:2013/9/3 15:33:00
--  

果然如你所说,通过这个例子学了不少东西。感谢大家,尤其是Bin!