以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]切换页面隐藏独立窗口 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=114007) |
||||
-- 作者:blsu33 -- 发布时间:2018/1/26 14:31:00 -- [求助]切换页面隐藏独立窗口 老师, 做了一个例子,希望切换页面,就能自动隐藏独立窗口,例如: 页面3 点击BTN 打开独立窗口3 点击页面 5 希望打开独立窗口5 当切换页面3 和页面5 时 独立窗口3 独立窗口5相应的也隐藏,但是未实现,劳烦老师给看下 [此贴子已经被作者于2018/1/26 14:34:00编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/1/26 14:47:00 -- 新增new出来的窗口,用全局变量或者public变量存放起来,如
|
||||
-- 作者:blsu33 -- 发布时间:2018/1/26 15:08:00 -- 老师, 打开窗口3 关闭窗口3 切换页面到窗口5 与窗口3 之间会提示 .NET Framework 版本:2.0.50727.5420 Foxtable 版本:2017.8.11.1 错误所在事件:窗口,主窗口,TabControl1,SelectedIndexChanged 详细错误信息: 无法访问已释放的对象。 对象名:“Form”。 应该是独立窗口关闭了 下面的判断不行? Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1") Dim tpage As WinForm.TabPage = tab.SelectedPage For Each key As object In vars("窗口").keys If vars("窗口")(key) <> tpage.text Then If key.Opened Then‘ If key.show=true也不行 key.Visible=False End If Else If key.Opened Then key.Visible=True End If End If Next 您再给看看 |
||||
-- 作者:blsu33 -- 发布时间:2018/1/26 15:11:00 -- 另外 ,要是 删除 字典里的值 ; 点击 关闭独立窗口关闭按钮 这个 代码 放到哪?
[此贴子已经被作者于2018/1/26 15:12:21编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/1/26 15:22:00 -- 不需要处理关闭吧,直接判断key是否为nothing就好了。
If key is nothing Then msgbox("窗口已关闭") End If
如果确实要关闭的时候处理,那绑定clocing事件。 |
||||
-- 作者:blsu33 -- 发布时间:2018/1/26 15:48:00 -- 老师, If key is nothing Then msgbox("窗口已关闭") End If 这个怎么用,,测试还是不行 ,首先key窗口关闭了,key 还是存在 ,是这么写? For Each key As object In vars("窗口").keys If vars("窗口")(key) <> tpage.text Then If key isnot nothing Then key.Visible=False 那绑定clocing事件,怎么绑定,这个后面也需要弄。 |
||||
-- 作者:有点甜 -- 发布时间:2018/1/26 16:02:00 -- 哦,我理解错了
Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1") |
||||
-- 作者:blsu33 -- 发布时间:2018/1/26 16:07:00 -- 好用了 那绑定clocing事件,怎么绑定,这个后面也需要弄。控件的 知道 了 ,窗口在哪里找,您能给个例子吗 就加一个 clocing事件 |
||||
-- 作者:有点甜 -- 发布时间:2018/1/26 16:17:00 -- 参考
http://www.foxtable.com/webhelp/scr/2374.htm
https://msdn.microsoft.com/zh-cn/library/system.windows.forms.form_events(v=vs.80).aspx
|
||||
-- 作者:blsu33 -- 发布时间:2018/1/26 16:28:00 -- 老师, 添加Closing事件 全局代码 Public Sub frm_Closing (ByVal sender As System.Object, ByVal e As System.EventArgs) MessageBox.Show("这是窗口关闭事件!") 窗口添加事件 Dim frm As New Windows.Forms.Form frm.Text = "窗口3" frm.Topmost = True frm.width = 500 frm.height = 500 frm.Show frm.Select frm.Top = (SysInfo.ScreenHeight - frm.height) / 2 frm.left = (SysInfo.ScreenWidth - frm.width) / 2 vars("窗口").add(frm, frm.text) \'添加关闭事件 \'这块能用?baseform \'AddHandler instance.Closing, AddressOf frm_Closing |