C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: チェックボックスにチェックがついているかの判定は???


(過去ログ 84 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■49797 / inTopicNo.1)  チェックボックスにチェックがついているかの判定は???
  
□投稿者/ 透明高速 (1回)-(2010/05/18(Tue) 07:06:35)

分類:[.NET 全般] 

当方VB.NETにてつくっています。XP SP3です。VWDを使用しています。
チェックボックスが何個かあるページなのですが、もし「2個以上」にチェックがついている場合、メッセージを表示したいのですがどのように書いたらいいのでしょうか?
        'チェックボックスが有効になっているかチェックしたい・・・
        Dim chkFlg(4) As Boolean
        Dim chkNone As Boolean

        chkFlg(0) = CheckBox1.Checked
        chkFlg(1) = CheckBox2.Checked
        chkFlg(2) = CheckBox3.Checked
        chkFlg(3) = CheckBox4.Checked
        chkFlg(4) = CheckBox5.Checked

引用返信 編集キー/
■49799 / inTopicNo.2)  Re[1]: チェックボックスにチェックがついているかの判定は???
□投稿者/ もりお (221回)-(2010/05/18(Tue) 08:53:07)
No49797 (透明高速 さん) に返信

変数を用意して足していくと良いのではないでしょうか。

Dim checkedCount As Integer = 0

If CheckBox1.Checked = True Then
  checkedCount += 1
End If

If CheckBox2.Checked = True Then
  checkedCount += 1
End If

...

If 2 <= checkedCount Then
  ' メッセージ表示
End If

引用返信 編集キー/
■49810 / inTopicNo.3)  Re[1]: チェックボックスにチェックがついているかの判定は???
□投稿者/ みきぬ (892回)-(2010/05/18(Tue) 13:10:41)
2010/05/18(Tue) 13:11:34 編集(投稿者)
No49797 (透明高速 さん) に返信
> 当方VB.NETにてつくっています。XP SP3です。VWDを使用しています。
> チェックボックスが何個かあるページなのですが、もし「2個以上」にチェックがついている場合、
> メッセージを表示したいのですがどのように書いたらいいのでしょうか?
>         'チェックボックスが有効になっているかチェックしたい・・・
>         Dim chkFlg(4) As Boolean
>         Dim chkNone As Boolean
> 
>         chkFlg(0) = CheckBox1.Checked
>         chkFlg(1) = CheckBox2.Checked
>         chkFlg(2) = CheckBox3.Checked
>         chkFlg(3) = CheckBox4.Checked
>         chkFlg(4) = CheckBox5.Checked

ここまでできているのであれば、素朴にループを使って数えてみたり、

    Dim count As Integer = 0
    For Each flag As Boolean In chkFlg
        If flag Then count += 1
    Next

    If count >= 2 Then
        ' ...
    End If

VWD 2008 以降であれば、LINQ を使ってみたり。

    If chkFlg.Count(Function(flag As Boolean) flag) >= 2 Then
        ' ...
    End If

-----
※引用文に改行を追加した。

引用返信 編集キー/
■49818 / inTopicNo.4)  Re[2]: チェックボックスにチェックがついているかの判定は???
□投稿者/ 魔界の仮面弁士 (1650回)-(2010/05/18(Tue) 15:27:07)
2010/05/18(Tue) 15:31:30 編集(投稿者)

No49810 (みきぬ さん) に返信
> VWD 2008 以降であれば、LINQ を使ってみたり。
> If chkFlg.Count(Function(flag As Boolean) flag) >= 2 Then

2005 なら、こう書けるかな。
If Array.FindAll(chkFlg, AddressOf True.Equals).Length >= 2 Then


# .FindAll 経由でカウントするのは直感的ではないので、
# 実際には、素直にループで処理する事を推奨。
引用返信 編集キー/
■49827 / inTopicNo.5)  Re[3]: チェックボックスにチェックがついているかの判定は???
□投稿者/ 透明高速 (3回)-(2010/05/19(Wed) 00:10:33)
皆様ありがとうございました。
これを基に書いてみたいと思います。
ちょっと考えすぎてわからなくなっていたのですがカウントしてしまえばよかったですね
頑張ります!
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -