以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  新增页面问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=90734)

--  作者:落叶孤影
--  发布时间:2016/9/20 20:20:00
--  新增页面问题

在论坛里找的代码,如下:但有点小瑕疵,就是单击窗口中的按钮时,一直增加相同名称的页面。如下图,请问怎么改代码能让页面只增加一个?
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20160920201427.png
图片点击可在新窗口打开查看

Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1")
Dim Name As String = "窗口2"
tab.TabPages.Add(name,name)
Dim pb = tab.BaseControl
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.TabPages(name).Controls.Clear \'清楚页签的控件
PB.TabPages(name).Controls.add(Forms(Name).BaseForm) \'加入到页签去
tab.SelectedPage = tab.TabPages(name) \'切换到新添加的页签

 


[此贴子已经被作者于2016/9/21 10:39:14编辑过]

--  作者:有点蓝
--  发布时间:2016/9/20 20:38:00
--  
Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1")
If tab.TabPages.Count > 0 Then Return
Dim Name As String = "窗口2"
tab.TabPages.Add(name,name)
Dim pb = tab.BaseControl
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.TabPages(name).Controls.Clear \'清楚页签的控件
PB.TabPages(name).Controls.add(Forms(Name).BaseForm) \'加入到页签去
tab.SelectedPage = tab.TabPages(name) \'切换到新添加的页签

--  作者:落叶孤影
--  发布时间:2016/9/21 8:51:00
--  
亲,上面的代码完全就打不开了,我都上传例子了,你都没下载下来看看吗?你给的代码你自己测试了没有?不要为了回答问题而去应付工作好吗?最后再啰嗦一句,你回答问题和解决问题的水平和“大红袍”老师差的太远!希望能改进!
--  作者:cbt
--  发布时间:2016/9/21 9:09:00
--  
 图片点击可在新窗口打开查看看不懂代码么?


Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1")
tab.TabPages.Clear \'你的为什么打不开就是因为你里面已经有三个了,而你的要求是只能有一个,人家完全达到你的要求了!你可以加个清空,自己的问题 还骂人
If tab.TabPages.Count > 0 Then Return ‘当页面有0个以上的时候就退出了,人家提供的思路,你完全可以修改一下
Dim Name As String = "窗口2"
tab.TabPages.Add(name,name)
Dim pb = tab.BaseControl
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.TabPages(name).Controls.Clear \'清楚页签的控件
PB.TabPages(name).Controls.add(Forms(Name).BaseForm) \'加入到页签去
tab.SelectedPage = tab.TabPages(name) \'切换到新添加的页签



--  作者:落叶孤影
--  发布时间:2016/9/21 9:38:00
--  
老师不要误会,我只是提点建议!
估计是我表达的有问题!你们给的代码还不是我想要的结果。你们可以打开项目看下,点击窗口中“查询”按钮时,一直增加上面图片中的“窗口2”这个页面,点击一次就新增加一个同名的“窗口2”页面。我是想实现:点击窗口中“查询”按钮时原来的页面不变,只增加一个“窗口2”页面就行了,谢谢!

--  作者:有点蓝
--  发布时间:2016/9/21 10:17:00
--  
Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1")
Dim Name As String = "窗口2"
For Each page As WinForm.TabPage In tab.TabPages
    If page.Name = Name Then Return
Next
tab.TabPages.Add(name,name)
Dim pb = tab.BaseControl
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.TabPages(name).Controls.Clear \'清楚页签的控件
PB.TabPages(name).Controls.add(Forms(Name).BaseForm) \'加入到页签去
tab.SelectedPage = tab.TabPages(name) \'切换到新添加的页签

--  作者:落叶孤影
--  发布时间:2016/9/21 10:39:00
--  
谢谢!