【clswindow框架應用】對於一個窗體中存在多個相同類名的輸入框該如何區分填寫?

clswindow是vb6中的一個類,主要用來訪問Windows窗口及內部控件,可以改寫和獲取,用的最多的是填寫某個窗口中的輸入框,例如用來做登錄器,填寫表單。關於該類更多介紹可以參考:https://blog.csdn.net/sysdzw/article/details/9083313

我們經常會遇到一個窗口中有多個輸入框,且輸入框的類名一樣,那麼該如何區分填寫呢?

要解決這個問題需要先明白一個原則,多個輸入框用遍歷控件的方法訪問,不管訪問多少次,它的先後順序是一致的,除非做軟件的故意將每次顯示時控件順序打亂,例如動態生成的控件隨意擺放位置,一般這個情況下極少,目前還沒遇到過。這樣就可以根據次序來進行填寫。

那麼我們的思路是這樣的:1.測試輸入框的次序, 2.根據次序填寫到目標輸入框

 

測試次序的代碼:

Dim i%
Dim w As New clsWindow
w.GetWindowByTitleEx "微標電腦收發存統計系統", 1
i = 0
Do
    i = i + 1
    If Not w.SetElementTextByClassName("ThunderRT6TextBox", "次序" & i, i) Then Exit Do
Loop
MsgBox "次序填寫完畢!"

這樣子的話我們就可以區分輸入框了,例如窗口裏有5個輸入框,你要填寫的輸入框通過上面的測試是“次序4”,想把它填寫爲xxxxxx,那麼你就可以編寫代碼:

w.SetElementTextByClassName "ThunderRT6TextBox", "xxxxxx", 4

同樣的如果要讀取第“次序4”的輸入框的內容,用下面代碼:

MsgBox w.GetElementTextByClassName("ThunderRT6TextBox", 4)

 

關於clswindow類的介紹,請參考:https://blog.csdn.net/sysdzw/article/details/9083313

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章