以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 使用TabControl多窗口。如果打开的窗口又含用TabControl应该如何DIM (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=35268) |
||||
-- 作者:ysq128 -- 发布时间:2013/6/27 16:47:00 -- 使用TabControl多窗口。如果打开的窗口又含用TabControl应该如何DIM 在正常窗口使用: Dim t As WinForm.TabControl = e.Form.Controls("TabControl1") 现在我在用TabControl多窗口。上面的语句就会报错了。
此主题相关图片如下:报错.jpg
|
||||
-- 作者:Bin -- 发布时间:2013/6/27 17:01:00 -- .
|
||||
-- 作者:ysq128 -- 发布时间:2013/6/27 17:22:00 -- 如果在多窗口下,代码不是在该控件事件内。又应该怎么DIM?
Dim t As WinForm.TabControl = Forms("窗体").Controls("TabControl1") [此贴子已经被作者于2013-6-27 17:24:43编辑过]
|
||||
-- 作者:Bin -- 发布时间:2013/6/27 17:29:00 -- 请使用我的例子,经过测试没有问题. |
||||
-- 作者:ysq128 -- 发布时间:2013/6/27 17:33:00 -- 你的例子是因为放在当前控件下面事件。 我实际的需求还需要在其它的控件中操作该控件。所以是不能用e.Sender |
||||
-- 作者:Bin -- 发布时间:2013/6/27 17:52:00 -- 因为你使用的是动态移植了,所以并不是原来的控件了,你使用名称没办法获得. 1.要么你在移植的时候给它赋值Name属性 2. 或者使用以下代码 For Each c As WinForm.Control In Forms("窗口_导航").Controls If Typeof c Is WinForm.Panel AndAlso c.Name="Panel1" Then \'判断控件是否是文本框 Dim t As WinForm.Panel = c \'使用特定类型的变量引用控件 For Each Cl As WinForm.Control In t.Children If Typeof Cl Is WinForm.TabControl Then Dim t2 As WinForm.TabControl = cl MessageBox.show(t2.SelectedPage.Name) End If Next End If Next |
||||
-- 作者:ysq128 -- 发布时间:2013/6/28 9:19:00 -- 如果照这样调整了。那程序基本上又复杂多了。越来越不好维护了。看来使用TabControl多窗口还是不适合大一点的项目了。 想用多窗口怎么就这么麻烦呢。 项目大一点没有分页多窗口有些地方不太顺手呀。而且如果是独立窗体的时候。对表数据操作快捷键都不支持的。如Ctrl+D等
|
||||
-- 作者:Bin -- 发布时间:2013/6/28 9:21:00 -- 你直接使用TabControl 就好了. 然后隐藏不需要的页面, 为何要建立窗口然后移植 这么麻烦呢 |
||||
-- 作者:ysq128 -- 发布时间:2013/6/28 9:46:00 -- 如果是就几个的情况下。直接使用TabControl ,但如果项目太大的话。几十个窗口那肯定行不通的。 此主题相关图片如下:snap4.jpg 就像浏览器 没有这个Tab会多么的不方便。
|
||||
-- 作者:jspta -- 发布时间:2013/6/28 13:17:00 -- 把窗口设置为并列窗口,你可以试试效果 |