首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

VB.net控件數組中屬性的設置解决方法

2012-04-03 
VB.net控件數組中屬性的設置在窗體中建了5個RadioButton控件,分別是RadioButton1,RadioButto2,RadioButto3

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

你需要进行类型转换

热点排行