打印本文 打印本文 关闭窗口 关闭窗口
Henry手记-VB.net WinForm中的FORM初探(三)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1743  更新时间:2009/4/23 19:01:08  文章录入:mintao  责任编辑:mintao

Henry手记-VB.net WinForm中的FORM初探(三)

            韩睿(2002.9.25)

 

三、Forms到哪去了?

    第一节讲的是一个窗体的类的问题,第两节讨论的是两窗体间的切换

(其实也可以引申为多窗体间的切换),这节讨论一下多窗体的问题。

 

这是vb.net版上一位网友发的询问贴,内容如下:

VB6中可以用
Dim frm As Form
For Each frm In Forms
  ……
Next frm
来取得窗口集合.这个功能在VB.NET中该怎样来完成呢?

先来分析一下Forms的含义与作用:

Forms是一个collection(集合),其元素是进程中被加载的Form。

包括MDI Form,MDI Child Form和non-MDI Form。

Forms集合只有一个属性,就是Count,表明了该集合中有多少元素。

为了达到要求,应该添加自己的forms集合. 
添加一个新的module, 然后在module中写入: 
Module FormsCollection
          Public Forms As New FormsCollectionClass() ‘类定义在后
End Module
  添加一个类模块:

Class FormsCollectionClass

Implements Ienumerable

Implements 关键字用于对类成员实现特定接口进行界定。
‘为使用For each功能,要实现Ienumerable接口,表示公开枚举数,
该枚举数支持在集合上进行简单迭代。

    Private c As New Collection()

‘Collection 对象提供了一种将一组相关项作为一个对象进行引用的便捷方法。集合中的项

(或成员)只需要存在于集合中即可成为相关项。集合中的成员不需要具有相同的数据类型。

它有两个方法:用Add添加元素,和用Remove从集合中删去元素。它有两个属性:

用count来记录元素数目,用只读属性Item返回Collection 对象的特定成员的位置或键

 

    Sub Add(ByVal f As Form) ‘向集合中添加元素的方法

        Dim itemCount As Integer

        For itemCount = 1 To c.Count

      ‘判断f是否在forms中,如果在则不加入

            If f.Name = CType(c.Item(itemCount), Form).Name Then

                Exit Sub

            End If

        Next

        c.Add(f)

    End Sub

 

    Sub Remove(ByVal f As Form) ‘向集合中删除元素的方法

        Dim itemCount As Integer

        For itemCount = 1 To c.Count

       ‘判断f是否在forms中,如果在则删除掉

            If f.Name = CType(c.Item(itemCount), Form).Name Then

                c.Remove(itemCount)

                Exit For

            End If

        Next

    End Sub

 

    ReadOnly Property Item(ByVal index) As Form ‘返回集合中某个位置的内容

        Get

            Return c.Item(index)

        End Get

    End Property

 

    ReadOnly Property count() As Integer ‘集合中元素数目的记录

        Get

            Return c.Count()

        End Get

    End Property

[1] [2]  下一页

打印本文 打印本文 关闭窗口 关闭窗口