VB.net控件數組中屬性的設置
在窗體中建了5個RadioButton控件,分別是RadioButton1,RadioButto2,RadioButto3,RadioButto4,RadioButto5放在Panel1容器中,還有5個TextBox控件,分別是TextBox1,TextBox2,TextBox3,TextBox4,TextBox5放在Panel2容器中。現在我要實現的功能是:用控件數組實現,當RadioButton控件被選中時,對應的TextBox控件獲得焦點。
我的想法應該是這樣實現:
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged, RadioButton2.CheckedChanged, RadioButton3.CheckedChanged, RadioButton4.CheckedChanged, RadioButton5.CheckedChanged
Dim i%
For i = 0 To 4
If Panel1.Controls.Item(i).Checked = True Then
Panel2.Controls.Item(i).Focus()
End If
Next
End Sub
但現在的問題是這個Panel1.Controls.Item(i)沒有Checked的屬性,不知道該怎麽解決這個問題,希望各位大能幫忙解決一下。
還要說明一點的是,我只想用控件數組來實現,我知道一個控件一個控件去寫代碼也可以實現,但那有點蔴煩,最主要的是我想掌握這個知識點,或者是多了解一些這方面的知識。
小弟剛開始學VB.net,希望大家能夠多多指教,謝謝!
[解决办法]
Private Sub RadioButton1_CheckedChanged(ByVal s As Object, ByVal e As EventArgs) Handles RadioButton1.Click,
RadioButton2.Click, RadioButton3.Click, RadioButton4.Click, RadioButton5.Click
For i% = 0 To Panel1.Controls.Count - 1
If s.Equals(Panel1.Controls.Item(i)) Then Panel2.Controls.Item(i).Focus():exit sub
Next
End Sub
其实你只要判断事件传入的object是哪个就可以了
如果你要判断checked值
你可以这样:
Dim rb as RadioButton=Panel1.Controls.Item(i)
然后:
if rb.checked=true then
[解决办法]
因为参数的类型是Object
你需要进行类型转换