| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1827 人关注过本帖
标题:怎么判断打开的是哪个窗体?
只看楼主 加入收藏
wxflw
Rank: 6Rank: 6
等 级:侠之大者
帖 子:325
专家分:435
注 册:2012-1-29
结帖率:87.21%
收藏
已结贴  问题点数:20 回复次数:7 
怎么判断打开的是哪个窗体?
我有3个子窗体在form3窗体我要判断我已经打开了form1还是form2,form1和form2永远不会同时打开!
另外form3打开状态下,form1或form2的Enabled属性是false状态
:我要实现的目的是在form1和form2都能show出form3,打开form3的同时form.Enabled = False
  在form3退出的时候,判断form3是从form1和form2哪个窗体打开的,
  如果是从form1打开的,form3的Form_Unload执行Form1.Enabled = True
  如果是从form2打开的,form3的Form_Unload执行Form2.Enabled = True
这个咋整?请指点一下啊!先谢谢了!
搜索更多相关主题的帖子: False false 
2012-11-16 09:06
ccwu2
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:35
专家分:142
注 册:2012-11-2
收藏
得分:3 
.Enabled?
.Visable?

还没遇过编不出来的代码,如果有那只是自己功力不足。
2012-11-16 09:15
wxflw
Rank: 6Rank: 6
等 级:侠之大者
帖 子:325
专家分:435
注 册:2012-1-29
收藏
得分:0 

 .Visable是控制控件可见不可见。如果窗体没打开这个属性怎么检查!所以不是我要的!
.Enabled这个是设置控件能不能操作的,不是我要的
我用过这个!
Dim aForm As Form
For Each aForm In Forms
  If aForm.Name = "Form1" Then
     Form1.Enabled = True
  End If
  If aForm.Name = "Form2" Then
     Form2.Enabled = True
  End If
Next
没效果啊!

[ 本帖最后由 wxflw 于 2012-11-16 10:15 编辑 ]

学习--------------学习-------------------学习--------------------!!
2012-11-16 10:13
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:10 
这样吧。

你 打开 Form3 的时候使用一个 公用过程来打开。
这个过程定义在 模块里的。

模块里的内容
Dim Fobj As Object    '定义在模块中的。为模块的局部变量

Public Sub openForm3(obj As Object)
Set Fobj = obj        '保存传进来的对象
Fobj.Hide             '隐藏
Form3.Show            '显示 form3
End Sub

Public Sub CloseForm3()
'unload form3        '关闭 FORM3 ,如果是按下面在关闭事件中写的,那么不需要执行这句。
Fobj.Show           '显示前面保存的 Form
End Sub


-----------------------
打开 form3 时的方法:
在 FORM1 或 FORM2 中调用
call openForm3(me)            'me 代表窗体本身。

在 form3 关闭事件中写到:
call CloseForm3()

在这些情况下,你只要再保证 form1 和 form2 不会同时出现就可以了。
---------------
下午测试过,在VB6精减版通过。

[ 本帖最后由 风吹过b 于 2012-11-16 15:43 编辑 ]

授人于鱼,不如授人于渔
早已停用QQ了
2012-11-16 11:53
ccwu2
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:35
专家分:142
注 册:2012-11-2
收藏
得分:2 
Public Enum frmOpen
    frmAbout = 0
    frmJEMulti = 1
    frmJESingle = 2
    frmJJMulti = 3
    frmJJSingle = 4
    frmConvert = 5
End Enum

Public FormBool() As Boolean
----------------------------------
Private Sub Form_Load()
    FormBool(frmOpen.frmJJSingle) = True
    Frame1.Caption = Me.Caption
End Sub
----------------------------------
每次开某个窗体都一定会跑它的Form_Load()
记录起来就好了

Private Sub Form_Unload(Cancel As Integer)
If FormBool(0) = True Then Unload frmAbout
If FormBool(1) = True Then Unload frmJEMulti
If FormBool(2) = True Then Unload frmJESingle
If FormBool(3) = True Then Unload frmJJMulti
If FormBool(4) = True Then Unload frmJJSingle
End Sub

我这只是为了直接关闭主程式时不会被有些页面卡住
我的附属页面是内嵌在主页面的Frame中
开一个Dialog来仿制MDI Form做成Windows explorer的样式
看你需求吧,每次只讲一小部分谁知道你到底要做啥....

还没遇过编不出来的代码,如果有那只是自己功力不足。
2012-11-16 13:28
疯子疯了
Rank: 2
等 级:论坛游民
帖 子:6
专家分:10
注 册:2012-11-15
收藏
得分:5 
你要的是不是 form.hide和form.show  ?
首先是模块
代码:
程序代码:
Public openformcode As Long
Public formcode1 As Boolean
Public formcode2 As Boolean
Public formcode3 As Boolean
Sub main()     '注意工程属性里的启动窗体调到 Sub main()
formcode1 = False
formcode2 = False
formcode3 = True
Form3.Show    '启动窗体3
End Sub
formcode1,formcode2,formcode3代表每一个窗体是否打开
form3只要不停检测formcode1,formcode2,formcode3的值就知道哪个窗体开着了


从form1进入form3时 openformcode="form1"     formcode1 = False   formcode3 = True  me.Enable = False
从form2进入form3时 openformcode="form2"     formcode2 = False   formcode3 = True  me.Enable = False
从form3退出时 在unload过程中只要检测 openformcode的值就能知道从哪个窗体退出了  别忘了设置formcode1,formcode2,formcode3的值
2012-11-16 20:11
青春无限
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏
等 级:贵宾
威 望:24
帖 子:3452
专家分:19340
注 册:2012-3-31
收藏
得分:0 
0学习

学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能
2012-11-17 10:14
wxflw
Rank: 6Rank: 6
等 级:侠之大者
帖 子:325
专家分:435
注 册:2012-1-29
收藏
得分:0 
还是版主的方法比较容易接受点,谢谢6楼的,虽然6楼的不是我要的,还是要谢谢!毕竟你在为我的问题寻求解决方法,让你费心了!也谢谢2楼和5楼的,你的方法给了我不少的启发!谢谢大家!

学习--------------学习-------------------学习--------------------!!
2012-11-17 20:01
快速回复:怎么判断打开的是哪个窗体?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041012 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved