以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 如何在Panel控件中动态地显示不同的Form? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=86188) |
-- 作者:Hopenight -- 发布时间:2016/6/12 16:52:00 -- 如何在Panel控件中动态地显示不同的Form? 请问一下,如何在Panel控件中动态地显示不同的Form. 之前在论坛上看到过实际例子的,但是一时半会找不到了... |
-- 作者:大红袍 -- 发布时间: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 -- 发布时间:2016/6/12 21:12:00 -- 我用窗口管理器新增了一个窗口,名字叫“窗口1”。我将第二行的“状态栏”换成了“窗口1” 套用以上的代码,好像有错。 我用MessageBox调试了一下,好像第4~6行的BaseForm是Nothing。 请问一下,我哪里弄错了? [此贴子已经被作者于2016/6/12 21:12:54编辑过]
|
-- 作者:Hopenight -- 发布时间:2016/6/12 21:36:00 -- 我发现BaseForm不存在的原因了: 我设计的窗口是主窗口,必须得是模式窗口或独立窗口 |
-- 作者:Hopenight -- 发布时间:2016/6/12 21:36:00 -- 谢谢大红袍 |
-- 作者:大红袍 -- 发布时间:2016/6/13 0:12:00 -- 以下是引用Hopenight在2016/6/12 21:36:00的发言:
我发现BaseForm不存在的原因了:我设计的窗口是主窗口,必须得是模式窗口或独立窗口
必须用独立窗口。 |
-- 作者:Hopenight -- 发布时间:2016/6/13 10:32:00 -- 以下是引用大红袍在2016/6/13 0:12:00的发言: 谢谢老师,受教了.
必须用独立窗口。 另外还有点不懂,你给的代码中这一句什么作用? Forms(Name).OPEN(-1000,-1500) |
-- 作者:大红袍 -- 发布时间:2016/6/13 10:46:00 -- 以下是引用Hopenight在2016/6/13 10:32:00的发言:
谢谢老师,受教了. 另外还有点不懂,你给的代码中这一句什么作用? Forms(Name).OPEN(-1000,-1500)
只有把窗口打开,才可以剪切窗口的内容。
这句代码的意思是,在屏幕看不到的位置打开窗口。 |