如何判断一个工程有哪些窗体打开了?(给分手不抖)
要实现一个重新登录的功能!
思路是:判断有哪些窗体是打开的,将打开的窗体全部UNLOAD掉,在将所有全局变量初始化,然后frmLogin.Show!
现在不知道怎么判断哪些窗体是打开的!
还有其他思路嘛?
问题点数:40、回复次数:3Top
1 楼zyl910(编程的乐趣在于编程控制硬件,与用图形学实现绚丽效果)回复于 2003-08-04 06:16:09 得分 10
Form 对象、Forms 集合
Form 对象是窗口、或者对话框,它组成应用程序用户界面的一部分。
Forms 集合是一个集合,它的元素代表每一个在应用程序中加载的窗体。集合包括应用程序的 MDI 窗体,MDI 子窗体和非 MDI 窗体。Forms 集合只有一个属性 Count,指定集合中元素的数目。
语法
Form
Forms(index)
index 所在处是一个整数,变化范围从 0 到 Forms.Count - 1。
说明
在应用程序中可以使用 Forms 集合在所有装载的窗体之间迭代。它标识一个命名为 Forms 的内在全局变量。可以把 Forms(index) 传给函数,指定其参数为 Forms 类。
窗体有一些属性确定了它们的外观,例如位置、大小、颜色;这些属性还确定了它们的行为,例如是否可调整大小。
窗体还可以对用户初始化或系统触发的事件作出反应。例如,可以在窗体的 Click 事件过程中编写代码,从而通过单击窗体改变窗体的颜色。
除了属性和事件外,还可以通过代码,使用方法来操作窗体。例如,可以使用 Move 方法改变窗体的位置和大小。
一种称作 MDI 窗体的特殊窗体还包含 MDI 子窗体。MDI 窗体由“插入”菜单的“添加 MDI 窗体”命令产生;在“文件”菜单中选择“新建窗体”,然后将 MDIChild 属性设置成 True,这样就创建了 MDI 子窗体。
在代码中使用 Dim、Set 和 Static 语句里的 New 关键字可以创建多个窗体实例。
在设计窗体时,设置 BorderStyle 属性定义窗体的边框,设置 Caption 属性把文本放入标题栏。可以在代码中使用 Hide 和 Show 方法使窗体在运行时可见或不可见。
注意 将 BorderStyle 设置为 0 就会删除边框。如果希望窗体有边框而没有标题栏、控制菜单框、最大化按钮和最小化按钮,则应从窗体 Caption 属性中删除任何文本,同时将窗体的 ControlBox、MaxButton 和 MinButton 属性设置为 False。
Form 是 Object 数据类型。在将变量设置成一种窗体的实例之前,可以先声明变量的类型为 Form,并在设计时声明这种窗体的实例。与此相似,可以把参数以 Form 类型传给过程。
窗体还可以作为 DDE 对话中的资源,通过 Label、PictureBox 或者 TextBox 控件提供数据。
可以使用 Controls 集合访问 Form 中的控件集合。例如,可以使用如下代码隐藏 Form 中的控件:
For Each Control in Form1.Controls
Control.Visible = False
Next Control
Top
2 楼zyl910(编程的乐趣在于编程控制硬件,与用图形学实现绚丽效果)回复于 2003-08-04 06:16:31 得分 15
Forms 集合示例
这个示例把当前所有已加载的窗体的标题填入列表框。
Private Sub Form_Activate ()
Dim I ' Declare variable.
' 重新填充列表(当添加或删除一个实例时)。
lstForms.Clear ' Clear list box.
For I = 0 To Forms.Count - 1
lstForms.AddItem Forms(I).Caption
Next I
End Sub
Top
3 楼Kivic(享受·生活)回复于 2003-08-04 13:50:03 得分 15
For i = 1 To Forms.Count
MsgBox Forms(i - 1).Name'显示已加载的窗体
MsgBox Forms(i - 1).Visible'显示已加载的窗体显示状态
NextTop



