以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Dot NET,C#,ASP,VB 』  (http://bbs.xml.org.cn/list.asp?boardid=43)
----  大家帮帮忙啊!  (http://bbs.xml.org.cn/dispbbs.asp?boardid=43&rootid=&id=15691)


--  作者:电脑蛙蛙
--  发布时间:3/16/2005 2:57:00 PM

--  大家帮帮忙啊!
我用的是VB.net刚刚学习。我想知道有没有办法能够得到一个vb项目里面的所有 窗口类。这样我就可以任意的创建一个窗口类的实例了。
--  作者:doubleG
--  发布时间:3/18/2005 12:13:00 PM

--  
可以的,用System.Reflection 反射出当前的运行的类就可以了。
--  作者:cookieboy
--  发布时间:4/12/2005 9:27:00 PM

--  
嗯,不错!
--  作者:电脑蛙蛙
--  发布时间:4/13/2005 8:45:00 AM

--  
谢谢,我已经实现了所要完成的功能了 ^_^,
下面的代码就是我的程序测试使用的代码,如果大家需要希望有所借鉴。我用列表存放是因为还有其他的作用 :)

    Public Sub New(ByVal TheName As String)
        Try
            Dim Temp As Reflection.Assembly = Reflection.Assembly.LoadFrom(TheName)
            Dim TempType() As Type = Temp.GetTypes()
            Dim Ttype As Type
            Dim TP As Reflection.PropertyInfo
            For Each Ttype In TempType
                Dim PropertyList() As Reflection.PropertyInfo
                PropertyList = Ttype.GetProperties
                For Each TP In PropertyList
                        TypeCollection.Add(Ttype)
                        '这里因为没有条件判断所以如果项目内如果存在其它的Cls也会被添加进入的
                Next

            Next
        Catch ex As Exception
            MsgBox(" 错误 !", MsgBoxStyle.Exclamation, "错误")
        End Try

    End Sub


    Public Function CreateForm(ByVal FormName As String) As Form
        Dim TempForm As Form
        Dim T As Type
        For Each T In TypeCollection
            If UCase(T.Name) = UCase(FormName) Then
                Return Activator.CreateInstance(T)
                Exit For
            End If
        Next
    End Function



--  作者:电脑蛙蛙
--  发布时间:4/13/2005 8:50:00 AM

--  
不知道大家有没有 .net 关于 vsa 的文档啊? msdn给的台不明白了,我做的软件还需要比较丰富的脚本支持,虽然目前已经有一定的收获但是希望进一步完善
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms