每一個TEXT的_GotFocus()事件都回傳自己的name
假設有我80個text(非陣列控制元件,name為系統默認)
Dim mm
Private Sub Text1_GotFocus()
mm = Mid(Text1.Name, 5, 2)
End Sub
Private Sub Text2_GotFocus()
mm = Mid(Text2.Name, 5, 2)
End Sub
。。。
要寫80個GOTFOCUS事件
有沒有簡單的代碼啊,我最終只要取text后面的數字(所以Name采用系統默認)
uj5u.com熱心網友回復:
用控制元件陣列不就解決問題了如果你嫌改界面設計麻煩,真想繼續堆夠垃圾的話,另外開一個小程式,回圈80次,生成這些代碼咯。
uj5u.com熱心網友回復:
系統默認name,為什么不用陣列呢?簡單方便uj5u.com熱心網友回復:
也可以用小程式修改Form表單的控制元件.
uj5u.com熱心網友回復:
改frm檔案不是不行,就怕他看到frm覺得更加麻煩。
uj5u.com熱心網友回復:
其實最好的方法就是用控制元件陣列,直接讀取Index的值就行了如果不用控制元件陣列的話也是可以的~添加一個timer控制元件,Interval屬性設為500
Dim mm
Private Sub Timer1_Timer()
Dim ctl As Control
Set ctl = Screen.ActiveControl
If ctl.Name Like "Text*" Then '這里是判斷是否Text控制元件
mm = Mid(ctl.Name, 5, 2)
End If
End Sub
這樣就可以了~不用每個Text控制元件添加代碼
uj5u.com熱心網友回復:
也可以在Form_Load的時候使用回圈load text(i),設定text(i).left,text(i).top屬性.表單上放一個textbox設定name為txtTest,index為0;
dim mm
sub form_load()
dim i as integer
for i=1 to 80
load txtTest(i)
txtTest.left = (計算偏移量x)
txtTest.top = (計算偏移量y)
txtTest.visible = true
next
end sub
sub txtTest_GotFocus(index as integer)
mm = index
end sub
uj5u.com熱心網友回復:
落了幾個(i),更正如下:dim mm
sub form_load()
dim i as integer
for i=1 to 80
load txtTest(i)
txtTest(i).left = (計算偏移量x)
txtTest(i).top = (計算偏移量y)
txtTest(i).visible = true
next
end sub
sub txtTest_GotFocus(index as integer)
mm = index
end sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/38717.html
標籤:VB基礎類
