| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1174 人关注过本帖
标题:[求助]怎样确定一个窗体是否已被实例化
只看楼主 加入收藏
水晶蝎子
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2005-8-27
收藏
 问题点数:0 回复次数:6 
[求助]怎样确定一个窗体是否已被实例化
请问大家,在一个MDI主窗体中,如何确定子窗体Form1是否已被实例化,应该使用哪一个属性,谢谢。
搜索更多相关主题的帖子: 实例 窗体 
2006-09-23 20:34
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 

子窗題用個 shared 變量boolean來保存是否已經被實例化


[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-09-24 10:10
水晶蝎子
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2005-8-27
收藏
得分:0 
谢谢楼上。
不过还是不太明白,如果现在有很多子窗体,当点击一个按钮时相对所对应的子窗体作出判断,如果已被实例化并打开,就将其激活,如没有就将其实例化,并打开,这样的操作该如何完成呢,谢谢。

2006-09-24 14:20
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 

構造函數設為私有

用shared成員方法返回新的實例

中間判斷設置的shared bool


[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-09-24 15:25
水晶蝎子
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2005-8-27
收藏
得分:0 
还是不太明白,是需要为每一个子窗体都设一个bool变量么

2006-09-24 16:01
feeling
Rank: 4
来 自:福建厦门
等 级:贵宾
威 望:10
帖 子:105
专家分:0
注 册:2006-3-29
收藏
得分:0 

Private Function GetInstanceState(ByVal name As String) As Boolean
'获得frmMain窗体的子窗体的数量
Dim i As Integer = Me.MdiChildren.Length
'循环判断是否有名为name的子窗体实例
For i = 0 To Me.MdiChildren.Length - 1
If Me.MdiChildren(i).Name = name Then
'存在名为name的子窗体,是子窗体获得焦点并返回True
Me.MdiChildren(i).Focus()
Return True
End If
Next
'不存在名为Name的子窗体False
Return False
End Function

............

If GetInstanceState("logmonitor") Then
Exit Sub
End If

Dim frm As New logmonitor
frm.MdiParent = Me
frm.Show()


互相学习! 不要放弃!时刻相信自己! 信心,是我们撑起世界的\'武器\'! 只怕你不肯学,而不怕自己学不会!
2006-09-30 22:32
蓝の魂
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-9-22
收藏
得分:0 

a 是任何控件包括窗体
Msgbox(Not (a Is Nothing OrElse a.IsDisposed))
True是实例化
上面实例通常是定义Form为全局变量,就不用判断是否已实例化
对VB.net感兴趣的请加入15636854讨论群

[此贴子已经被作者于2006-10-10 21:06:17编辑过]

2006-10-10 21:04
快速回复:[求助]怎样确定一个窗体是否已被实例化
数据加载中...
 
   



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

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