以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请问为什么添加到Panel里面的窗口,打开窗口就关闭了 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=47236) |
-- 作者:打错潇洒 -- 发布时间:2014/3/6 17:11:00 -- 请问为什么添加到Panel里面的窗口,打开窗口就关闭了 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) 当使用以上的代码将一个 名字的工具栏的窗口 添加到了 当前名称为Panel2里面 Panel2里面有个按钮要打开其他的窗口 这个时候当前窗口就关闭了 |
-- 作者:Bin -- 发布时间:2014/3/6 17:13:00 -- 上例子. |
-- 作者:逛逛 -- 发布时间:2014/3/6 17:21:00 -- 1、要加入的窗口类型应该是独立窗口
2、PB.BaseControl.Controls.Clear 是清除容器中所有的控件(主要是写例子的时候嫌麻烦,没有遍历隐藏),所以这时候容器中不能有控件,否则都会清除。 |
-- 作者:打错潇洒 -- 发布时间:2014/3/6 17:32:00 -- 真的是这样子 谢谢逛逛 可是这样会不会增加 系统负担 重复性添加了控件 |
-- 作者:逛逛 -- 发布时间:2014/3/6 17:39:00 -- 应该不会的,一个窗体不管你怎样添加,还是一个窗体,无非是移了一个位置。
我想做到窗体复用,都没办法。
当然判断窗口是否已打开,是必不可少的。 [此贴子已经被作者于2014-3-6 17:40:26编辑过]
|
-- 作者:打错潇洒 -- 发布时间:2014/3/6 19:06:00 -- 模态窗口打开 依然会关闭 有没有解决方案 |
-- 作者:打错潇洒 -- 发布时间:2014/3/6 19:19:00 -- 还有 好厉害的闪烁 |
-- 作者:逛逛 -- 发布时间:2014/3/6 20:25:00 -- 其实这个案例,初衷是在项目中只使用一个主窗体,通过窗体的控件化来调用整个程序。
1、便于项目整体风格的统一
2、可以利用项目的锁屏方法来减少闪烁(当然的注意一下技巧,防止死锁。)
3、减少设计工作量。(如:员工表编辑窗口只要设计一个,就可以在权限编辑、部门查看等窗口中调用,当然不能同时。)
4、可以复制窗口(用模板),如果你将目录树归为一类、表格归为一类,设计工作量会大量减少。
对于模式窗口时这样模拟的。(用的还是独立窗口)
主窗口中有一个textbox控件,值改变事件写入:如果为10就将主窗口的可用为假,如果为20就将主窗口的可用为真
将模拟的模式窗口打开,置顶,textbox控件值为10
关闭时,设textbox控件值为20
用textbox的的原因是他有事件,同时可视为假时,也可以调用。 [此贴子已经被作者于2014-3-6 20:30:13编辑过]
|