none
VB6如何列出所有物件的資訊? RRS feed

  • 問題

  • 請問VB6如何列出所有物件的資訊?
    用for each ....的語法
    我想到得到: 控制項類別,名稱...........
    如: TextBox, Text1 .........
    最好能知道這控制項的上層物件(也許可能在Frame當中)

     

    thanks!

    2007年8月31日 上午 03:55

解答

  • 這是 Form 或容器提供的特殊解,並非是通解。

     

    意即你不能對某個控制項使用相同的方法。

     

    如果這是你要的答案,建議你回去檢視你的原文,你要的東西跟你的原文不是同義。

     

    正確的來說,這段程式碼簡寫的中文應該是:

    列舉 Form 上的控制項。

     

    在 VB6 上,所有的控制項都可以直接被列舉,在 VBNET 上,則需透過遞回列舉不同子容器的控制項。

    2007年9月5日 上午 02:07
    版主

所有回覆

  • vb6 沒提供這方面的工具,你自己看看 CoGet* 起頭的 API 函數有沒有。

     

    我印象中先前有看過這方面的範例,好像是 honey 接 cww 那個網站,你可以去找看看,國外網站也有,先前華彩倒之前,有翻譯過一本 VB6 COM 的書,好像也有,VB6 丟很久了,細節不記得了。

     

    2007年8月31日 上午 05:26
    版主
  • 我想你不用想了 .

    VB 6 在 RTTI (Runtime Type Information) 的支援上不足,不能像是 VB.NET 那樣可以用 Reflection 來實作 .

    除非透過 COM API,但這更麻煩 .

     

    2007年8月31日 上午 09:19
    版主
  • 以上兩位MVP,

    可是有人寫出來了,而且正是我要的答案捏!

    如下:

    Dim ctl As Control  
    For Each ctl In Me 
        Debug.Print "類別:" & TypeName(ctl) & " 名稱:" & ctl.Name & " 容器:" & ctl.PARENT.Name  
    Next ctl  

    2007年9月5日 上午 02:00
  • 這是 Form 或容器提供的特殊解,並非是通解。

     

    意即你不能對某個控制項使用相同的方法。

     

    如果這是你要的答案,建議你回去檢視你的原文,你要的東西跟你的原文不是同義。

     

    正確的來說,這段程式碼簡寫的中文應該是:

    列舉 Form 上的控制項。

     

    在 VB6 上,所有的控制項都可以直接被列舉,在 VBNET 上,則需透過遞回列舉不同子容器的控制項。

    2007年9月5日 上午 02:07
    版主
  • to 璉璉,

    您的用詞比較精確,感謝您的指正。

    2007年9月6日 上午 12:16