CheckBox全部オン/オフ

解決


TOSHI  2008-02-07 17:20:22  No: 144409  IP: 192.*.*.*

VB2005をで開発している、初心者です
ネット書籍等でいろいろ調べましたが分かりません、宜しくお願いします。

画面にCheckBoxを30個配置し全部をオン/オフにするプログラムを作って
います、一つずつ羅列しプログラムを書けば解決できるのですが、数が増
えればプログラムも長くなりコードも見づらくなります、何か良い方法は
無いでしょうか?
-----------------------------------------------現状
chkOpen1.Checked = True
chkOpen2.Checked = True
chkOpen3.Checked = True
chkOpen4.Checked = True
......
-----------------------------------------------今後
Dim controlName As String
For i = 1 To 30
    controlName = "chkOpen" & i
    Me.Controls(controlName).Checked = True  'この部分でエラーになる
Next i

編集 削除
魔界の仮面弁士  2008-02-07 18:19:37  No: 144410  IP: 192.*.*.*

> Me.Controls(controlName).Checked
代わりに、Controls.Find メソッドを試してみてください。
(同名のコントロールも作れるため、結果は配列で返されます)

ただしこういう時は、毎回、コントロール名によって検索するのではなく、
あらかじめ最初(Load イベントなど)に、それら 30個のコントロールを
コレクションや配列などに保持しておいた方が便利ですよ。

編集 削除
YuO  2008-02-07 18:20:18  No: 144411  IP: 192.*.*.*

エラー内容はどのような内容でしたか。
省略せずにk書いてみてください。
また,Option Strictはどう設定されていますか。

>     Me.Controls(controlName).Checked = True  'この部分でエラーになる
Dim target As CheckBox = TryCast(Me.Controls(controlName), CheckBox)
If Not target Is Nothing Then target.Checked = True
と,ちゃんとCheckBoxに変換してやってはどうでしょうか。

編集 削除
TOSHI  2008-02-07 18:29:15  No: 144412  IP: 192.*.*.*

早速の対応ありがとうございます。
驚きました、感謝です
また投稿したいと思います。

編集 削除