Foxtable(狐表)用户栏目专家坐堂 → [求助]合并两段代码出错


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

主题:[求助]合并两段代码出错

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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]合并两段代码出错  发帖心情 Post By:2018/1/21 13:51:00 [只看该作者]

在主窗口中显示子窗口时,关闭当前子窗口,再加载新的子窗口,提示出错。

这两个过程设置两个按钮单独运行没有问题,但是合并为一个按钮时提示不能调用容器控件panel。

两段代码如下,请老师指教:

 

’1、关闭当前窗口,返回主窗口
For Each frm As WinForm.Form In Forms
        If frm.Name <> "导航窗口" Then
        frm.Close
    End If
Next
Forms("导航窗口").show()
e.Form.Controls("Panel5").basecontrol.visible = True
e.Form.Controls("Panel5").basecontrol.BringToFront '置前
Forms("导航窗口").Controls("SplitContainer2").Panel1Collapsed = True  '隐藏导航栏

 

’2、打开新窗口
Dim PB As WinForm.Panel = e.Form.Controls("Panel4")
Dim Name As String = "批量录入"
Forms(Name).OPEN(-1000,-1500)
Forms(Name).BaseForm.TopLevel = False
Forms(Name).BaseForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
Forms(Name).BaseForm.Dock = System.Windows.Forms.DockStyle.Fill   '子窗口充满父窗口
'PB.BaseControl.Controls.Clear
PB.BaseControl.Controls("panel5").visible = False
PB.BaseControl.Controls.add(Forms(Name).BaseForm)
'Forms(Name).BaseForm.left = (pb.width-Forms(Name).BaseForm.width) / 2    '子窗口居中显示
'Forms(Name).BaseForm.top = (pb.height-Forms(Name).BaseForm.height) / 2
pb.Select    '点击闪退加
Forms("批量录入").open()


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


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

上传一个实例具体测试。

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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/1/22 10:29:00 [只看该作者]

点击导航栏按钮进入窗口1,再点击窗口1中的“问题按钮”,会提示出错。

目的是在主窗口退出“窗口1”,加载“窗口2”。

 谢谢!

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


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


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

不能用 e.form,要改成 Forms("主窗口")

 

 

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


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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/1/30 22:26:00 [只看该作者]

老师回复的例子没有问题,我用到项目中,加载的“窗口2”内的控件都被锁死了,不能操作,会是哪里的问题。

单独打开“窗口2”没有问题。

代码:

For Each frm As WinForm.Form In Forms
        If frm.Name <> "主窗口" Then
        frm.Close
    End If
Next
Forms("主窗口").show()
Forms("主窗口").Controls("Panel5").basecontrol.visible = True
Forms("主窗口").Controls("Panel5").basecontrol.BringToFront '置前
Ctype(ApplicationMenu.LeftItems("Save"), RibbonMenu.Button).PerformClick()   '保存项目
'-----------------------------
Forms("主窗口").Controls("SplitContainer2").Panel1Collapsed = True  '隐藏导航栏

Dim PB As WinForm.Panel = Forms("主窗口").Controls("Panel4")
Dim Name As String = "窗口2"
Forms(Name).OPEN(-1000,-1500)
Forms(Name).BaseForm.TopLevel = False
Forms(Name).BaseForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
Forms(Name).BaseForm.Dock = System.Windows.Forms.DockStyle.Fill
'PB.BaseControl.Controls.Clear
PB.BaseControl.Controls("panel5").visible = False
PB.BaseControl.Controls.add(Forms(Name).BaseForm)
pb.Select


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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/1/30 22:55:00 [只看该作者]

代码看不出什么问题,上传有问题的项目测试

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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/1/30 23:20:00 [只看该作者]

加载的“窗口2”    afterload事件,加上这几句无边框移动的代码后行了:

 

AddHandler e.Form.Panel.MouseDown,AddressOf Panel_MouseDown   '无边框移动
e.form.BaseForm.FormBorderStyle = Windows.Forms.FormBorderStyle.None
e.Form.BaseForm.ShowInTaskbar = True


 回到顶部