DOBON.NET DOBON.NETプログラミング掲示板過去ログ

CheckBox のチェックをとるには

環境/言語:[Windows2000 VB.NET]
分類:[.NET]

こんにちは CheckBox が30個近くあるんですが
CheckBox1, CheckBox2・・・・・
再スタートで前に入れたチェックをすべてはずしたい flase にしたのですが
教えてください。
■No10035に返信(タクシーファンさんの記事)
こんにちは okaと申します。

> こんにちは CheckBox が30個近くあるんですが
> CheckBox1, CheckBox2・・・・・
> 再スタートで前に入れたチェックをすべてはずしたい flase にしたのですが
> 教えてください。

これは、30個もあるチェックボックスをCheckBox1.Checked = False・・・・
と30個やるのが面倒なためということでしょうか?
そうであると想定すると、それらのチェックボックスをコントロール配列にして、あとはループでチェックを外してやれば簡単に初期化できます。
こんにちは、じゃんぬ です。

■No10037に返信(okaさんの記事)
> それらのチェックボックスをコントロール配列にして、
> あとはループでチェックを外してやれば簡単に初期化できます。

配列化がイヤであれば、For Each で列挙しても良いですね。
ある GroupBox を対象とするか、判別できるものが必要ですけどね。
この記事は(投稿者)削除されました
> 配列とかは、ループはわかるんですが
> CheckBox のチェックを flase にする チェックをとる方法が
> 知りたいんですが
ん?

>oka さん
の、
> CheckBox1.Checked = False
でないの?
とりあえず、関連するメンバのヘルプ全てには目を通しましょう。
大変ですが、一番早いです(ぉ
さっそく oka さん じゃんぬねっと さんありがとう

  Dim i As Integer
For i = 0 To 32
  CheckBox(i).Checked = False
Next

CheckBox は型であるため式として使用できません。
となるんで教えてください。
こんばんは、じゃんぬ です。

■No10044に返信(タクシーファンさんの記事)
> CheckBox は型であるため式として使用できません。
> となるんで教えてください。

エラーの通りです。
別の名前にしましょう。

こんばんは、じゃんぬ さん

Checkbox の定義はどのようにするのでしょうか
以下ではエラーになってしまい
教えてください。

Dim i As Integer
Dim chkbox() As System.Windows.Forms.CheckBox

For i = 0 To 32
chkbox(i).Checked = False
 Next
こんばんは、じゃんぬ@デスマーチ中 です。

■No10047に返信(タクシーファンさんの記事)
> Dim i As Integer
> Dim chkbox() As System.Windows.Forms.CheckBox
>
> For i = 0 To 32
>   chkbox(i).Checked = False
> Next

これは、中身がないどころか、配列すら確保できていませんね。
エラーではなく例外が発生するでしょう。(^^)
その辺りは、リファレンスなんかでお勉強ください。
これだけ分かりやすい回答がついているのに、
他に何が足りないのでしょう?

沢山のレスの中からキーワードを拾い、検索をかけ、
調べて、応用して、組み合わせる・・・という、
ごく普通の努力をしたようには全然見えません。

質問にもよるのでしょうが、今回の質問は
上の行動で十分解決できるはずです。

楽だからといって、すぐに『教えて君』になるのではなく、
分からないことを調べるくらいの努力はして下さい。

調べた上での質問なら、今までにどういったことを試し、
どういったエラーがでたのでここに書き込んだ、という
経緯を記述してあるはずですね。
■No10049に返信(どろんさんの記事)
おはようございます。okaです。
え〜と、まずじゃんぬねっとさんがおっしゃられている通りに、このコードではコントロールを配列として扱うことが出来ません。

>Dim chkbox() As System.Windows.Forms.CheckBox

↑では何をやっているかは理解されていますか?
まずは宣言時、またはRedimにて配列の要素数を与え、その一つ一つにCheckBoxコントロールを代入していきます。
そうすれば、後に続くループ処理で例外が発生しないのではないでしょうか。

また、これは関係ないですが、30個以上もあるコントロールを配列にするのであれば、列挙体なんか用いたら、面倒ですが後々管理が楽になりますよ。
チェックの初期化のみならまあ必要もないですけど・・・。
あと、For i = 0 to 32 のような感じで決め打ちするよりは、配列の要素数の最大値までというやり方も検討してみてください。←大きなお世話。
okaさん ありがとうごじます。

まだ解決してませんが、どろん さんのきつい意見もあり
ひとまず終了します。
まだまだ知識不足で・・・
解決済み!
> まだ解決してませんが、どろん さんのきつい意見もあり
> ひとまず終了します。
> まだまだ知識不足で・・・

『知識不足』が悪いのではなく、
『自分で調べようとしない』のがよろしくない
と言っているのですが・・・。

今回の場合、okaさんの出したキーワード[コントロール配列]を
調べたら解決すると思うのですが、それすらもしなかったのでしょう?

終了されたみたいで何なのですが、勘違いされたままなのは
悪者扱いは嫌ですので。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板