Foxtable(狐表)用户栏目专家坐堂 → 如何在Panel控件中动态地显示不同的Form?


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

主题:如何在Panel控件中动态地显示不同的Form?

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


加好友 发短信
等级:四尾狐 帖子:862 积分:10841 威望:0 精华:0 注册:2016/5/6 14:34:00
如何在Panel控件中动态地显示不同的Form?  发帖心情 Post By:2016/6/12 16:52:00 [只看该作者]

请问一下,如何在Panel控件中动态地显示不同的Form.

之前在论坛上看到过实际例子的,但是一时半会找不到了...


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/12 18:21:00 [只看该作者]

Dim PB As WinForm.Panel = e.Form.Controls("Panel2")
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.add(Forms(Name).BaseForm)

 


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


加好友 发短信
等级:四尾狐 帖子:862 积分:10841 威望:0 精华:0 注册:2016/5/6 14:34:00
  发帖心情 Post By:2016/6/12 21:12:00 [只看该作者]

我用窗口管理器新增了一个窗口,名字叫“窗口1”。我将第二行的“状态栏”换成了“窗口1” 套用以上的代码,好像有错。 我用MessageBox调试了一下,好像第4~6行的BaseForm是Nothing。 请问一下,我哪里弄错了?
[此贴子已经被作者于2016/6/12 21:12:54编辑过]

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


加好友 发短信
等级:四尾狐 帖子:862 积分:10841 威望:0 精华:0 注册:2016/5/6 14:34:00
  发帖心情 Post By:2016/6/12 21:36:00 [只看该作者]

我发现BaseForm不存在的原因了: 我设计的窗口是主窗口,必须得是模式窗口或独立窗口

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


加好友 发短信
等级:四尾狐 帖子:862 积分:10841 威望:0 精华:0 注册:2016/5/6 14:34:00
  发帖心情 Post By:2016/6/12 21:36:00 [只看该作者]

谢谢大红袍

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/13 0:12:00 [只看该作者]

以下是引用Hopenight在2016/6/12 21:36:00的发言:
我发现BaseForm不存在的原因了:我设计的窗口是主窗口,必须得是模式窗口或独立窗口

 

必须用独立窗口。


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


加好友 发短信
等级:四尾狐 帖子:862 积分:10841 威望:0 精华:0 注册:2016/5/6 14:34:00
  发帖心情 Post By:2016/6/13 10:32:00 [只看该作者]

以下是引用大红袍在2016/6/13 0:12:00的发言:

 

必须用独立窗口。

谢谢老师,受教了.

另外还有点不懂,你给的代码中这一句什么作用?
Forms(Name).OPEN(-1000,-1500)

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/13 10:46:00 [只看该作者]

以下是引用Hopenight在2016/6/13 10:32:00的发言:

谢谢老师,受教了.

另外还有点不懂,你给的代码中这一句什么作用?
Forms(Name).OPEN(-1000,-1500)

 

只有把窗口打开,才可以剪切窗口的内容。

 

这句代码的意思是,在屏幕看不到的位置打开窗口。


 回到顶部