Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
For Eachについて
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=2551#CommentId20017
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
よねKEN
 ()
投稿日時
2008/8/24 23:01:00
うまくいったとのことなので、Formの上に直接、RadioButtonを複数配置されているのでしょうか。
Formの上にPanelやGroupBoxなどを配置し、
その中にRadioButtonを配置しているような場合だとこのやり方ではうまくいかないと思います。
例えば、以下のようなメソッドをFormのメソッドとして定義しておきます。
Public Sub DisableRadioButton(ByVal parent As Control)
For Each ctrl As Control In Me.Controls
If TypeOf ctrl Is RadioButton Then
ctrl.Enabled = False
End If
If ctrl.Controls.Count > 0 Then
DisableRadioButton(ctrl)
End If
Next
End Sub
その上で、以下のように呼び出せば、そのForm上のすべてのRadioButtonが使用不可になります。
DisableRadioButton(Me)
Me.Controlsには、そのフォームの上に直接配置されたオブジェクトだけが格納されていますので、再帰的に処理をしないと処理もれが発生することがあります。