Foxtable(狐表)用户栏目专家坐堂 → [求助]关闭并列窗口问题


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

主题:[求助]关闭并列窗口问题

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


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
[求助]关闭并列窗口问题  发帖心情 Post By:2017/3/29 9:22:00 [只看该作者]

将一独立窗口加入到并列窗口的一页签中,单击窗口上的关闭按钮,如何一同关闭所处的页签?

 

谢谢


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/29 9:36:00 [只看该作者]

 方法一:用变量记录好窗口和页签对应的关系,然后对应关闭。

 

 方法二:e.form.panel.parent.parent 用相对引用的方式找到tab和tabpage,然后关闭。


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


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
  发帖心情 Post By:2017/3/29 9:49:00 [只看该作者]

以下是引用有点色在2017/3/29 9:36:00的发言:

 方法一:用变量记录好窗口和页签对应的关系,然后对应关闭。

 

 方法二:e.form.panel.parent.parent 用相对引用的方式找到tab和tabpage,然后关闭。

方法二中,panel,parent,parent.parent 各对应是的是哪一级控件?

 

 Dim MainTab As C1Command.C1DockingTab = BaseMainform.Controls("MainPages") '''
Dim FormTab As C1Command.C1DockingTab = MainTab.TabPages(0).Controls(0) '''系统并列窗口页面集合

[此贴子已经被作者于2017/3/29 9:49:15编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
  发帖心情 Post By:2017/3/29 9:54:00 [只看该作者]

另:如何判断系统并列窗口页面集合某一页签内是否存在窗口,如果有,如何返回该窗口?

 

谢谢

 


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


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
  发帖心情 Post By:2017/3/29 10:17:00 [只看该作者]

        If e.TabPage.Controls.count > 0 Then  ''如果有子控件
            Dim f = e.TabPage.Controls(0)
            MessageBox.Show(f.text,f.name)
    f.close
        End If

 

如何判断f一定就是窗口?


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/29 10:24:00 [只看该作者]

1、e.form.panel.parent.parent 自己弹出名字或者弹出类型看,自行研究

 

2、循环页签下所有controls,获取控件的类型判断gettype.name,自行研究


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


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
  发帖心情 Post By:2017/3/29 12:53:00 [只看该作者]

以下是引用有点色在2017/3/29 10:24:00的发言:

 

 

2、循环页签下所有controls,获取控件的类型判断gettype.name,自行研究

        If e.TabPage.Controls.count > 0 Then  ''如果有子控件
            Dim f = e.TabPage.Controls(0)
            MessageBox.Show(f.Gettype.name)
        End If

 

f为窗口,返回结果: O 0 0 0 ,而不是窗口类型


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/29 15:08:00 [只看该作者]

 如果是并列窗口,我这样测试弹出的是FormPanel

 

dim tab = forms("窗口1").panel.parent.parent
msgbox(tab.selectedtab.controls(0).gettype.name)

 

 如果你的类型无法分别出来,那直接用窗口名.name


 回到顶部