小弟最近自學VB...
由於以前只學過Tcl而都沒學過VB,所以有些問題在各位前輩眼中是小問題,
但是在我身上卻是我的大問題啊!!!
請有經驗的大大們指點迷津吧!!!
我遇到的問題是...
例如:現有3個button,Name分別為but1,but2,but3,而Enable皆為Fales
若我需要用For迴圈將3個button的Enable改為True,該如何寫??
我只知道TCL寫法...
for {set i 1} {$i < 4} {incr i} {
but$i.Enable=True
}
但是我卻一直摸不會VB的寫法...請各位先進教一下吧!!!感激不盡︿︿
試試
For Each cobj In Form.Controls
if cobj.Name = "but1" then cobj.Enable = true
Next
非常感謝你的回覆!!
我有用你的解答改了之後去試看看!!
但是有點錯誤~不知道哪裡有錯??
能替我看一下嗎??
Dim i As Integer = 0
Dim j As String
For i = 1 To 3
j = "but" & i
For Each CObj In Me.Controls
If i < 3 Then
CObj(.Name = j)
CObj(.Enable = True)
End If
Next
Next
錯誤發生在For Each CObj In Me.Controls這行
[In 必須又'(']<----這是什麼意思??
拍謝 因為直接回答 沒注意 cobj 是保留字
For Each butt As Control In Me.Controls
If butt.Name.StartsWith ( "But" ) then
butt.Enabled = true
end if
Next
OK了耶!!
只不過是採用比對name的方式...會有點麻煩
例如:but1..but2..此類字串容易和but10~but19...but20~but29比對到!!
不過將物件名稱改成"數字自動補零"後就可以解決問題了!!
感謝你的解答!!!
上網查一下就一堆範例, 以你的程度算小case.
http://msdn.microsoft.com/zh-tw/library/5z06z1kb(VS.80).aspx