以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]判断当前显示的并列窗口名称  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=115466)

--  作者:jyh7081
--  发布时间:2018/3/7 16:31:00
--  [求助]判断当前显示的并列窗口名称

前几天问过这个问题,没能最终解决,原贴:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=115004

 

我的情况是:有个独立窗口根据判断当前显示的不同并列窗口名称来给并列窗口中的表添加数据,错误代码如下:

If Forms("送达回证编辑").Opened Then
    ......   
ElseIf Forms("传票编辑").Opened Then
    ......   
ElseIf Forms("EMS编辑").Opened Then
    ......     
ElseIf Forms("常用文书").Opened Then
    ......
    ......
End If
Forms("批量增加").close

 

-------------
我用老师提供的下列代码测试,当并列窗口显示后,再打开"批量增加"窗口时,计划代码运行

ActiveForm显示为两个窗口。点击“批量增加”按钮后,数据没有加进显示的并列窗口的表中。

请老师看看怎样修改上面的判断代码?

谢谢!

 

Dim frm = Windows.Forms.Form.ActiveForm
If frm IsNot Nothing Then
    output.show(frm.name)
End If
output.show("---------------")
Dim frm1 As WinForm.Form = Forms.ActiveForm
If frm1 IsNot Nothing Then
    output.show(frm1.name)
End If
output.show("········")



 


--  作者:有点甜
--  发布时间:2018/3/7 17:36:00
--  

1、请上传可以测试的实例。

 

2、frm.name和frm1.name弹出的值是否正确?


--  作者:jyh7081
--  发布时间:2018/3/8 22:14:00
--  

甜老师好,我做了一个实例,ActiveForm测试代码已经写入计划任务,可在命令窗口查看,其他代码虽然写了,但运行没有效果。

 

实例目的是:“批量增加”这个独立窗口,根据判断当前显示的不同并列窗口名称来给并列窗口中的表添加数据

 

请老师指教,谢谢!

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:识别并列窗口.table


--  作者:有点甜
--  发布时间:2018/3/8 22:42:00
--  

参考代码

 

Dim frm As object
For Each f As WinForm.Form In Forms
    If f.Tablename = "main" AndAlso f.opened AndAlso f.FormStyle = 0 Then
        Dim tab = f.panel.parent.parent
        Dim p = tab.tabpages(tab.Selectedindex)
        frm = Forms(p.controls(0).name)
        Exit For
    End If
Next
msgbox(frm.name)

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:识别并列窗口.table