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

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

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

Re[2]: チェックボックスについて


(過去ログ 17 を表示中)

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

■6385 / inTopicNo.1)  チェックボックスについて
  
□投稿者/ かな (1回)-(2007/08/09(Thu) 11:27:16)

分類:[C#] 


いろいろ調べたのですが、分からないので質問させていただきます。
Visual Studio 2005で勉強中の超初心者です。

フォームに、複数のチェックボックスがあって、
「どれか一つでもチェックが入ったら」というイベントを取得するには
どうしたら良いでしょうか。

最初は一つ1つのチェックボックスの
CheckedChanged イベントを書いていましたが、
複数チェックが可能で2つチェックされると、
処理上おかしくなるんです。

超初心者で、文章もおかしいかもしれませんが、
教えてください。お願いします。
引用返信 編集キー/
■6388 / inTopicNo.2)  Re[1]: チェックボックスについて
□投稿者/ Blue (332回)-(2007/08/09(Thu) 11:56:08)
チェックされているチェックボックスの数を保持するメンバ変数を作って、
それが1かどうかで「どれか一つでもチェックが入ったら」としてはどうでしょうか?

適当な例)


    public int checkCount;

    public void Form1_Load(object sender, EventArgs e)
    {
        // 3つのチェックボックスのCheckedChangedイベントを割付
        this.checkBox1.CheckedChanged += new EventHandler(checkBox_CheckedChanged);
        this.checkBox2.CheckedChanged += new EventHandler(checkBox_CheckedChanged);
        this.checkBox3.CheckedChanged += new EventHandler(checkBox_CheckedChanged);

        // 初期値は無チェックに
        this.checkCount = 0;
    }

    public void checkBox_CheckedChanged(object sender, EventArgs e)
    {
        if (((CheckBox)sender).Checked)
        {
            // チェックしたチェックボックスをインクリメント
            this.checkCount++;

            // 既にチェックが入っていると checkCount は1より大きい値になる
            if (this.checkCount != 1)
                return;
            
            // 以降が「どれか一つでもチェックが入ったら」ということになる

            MessageBox.Show("First Checked!");
        }
        else
        {
             // チェックしたチェックボックスをデクリメント
            this.checkCount--;
        }
    }

引用返信 編集キー/
■6391 / inTopicNo.3)  Re[2]: チェックボックスについて
□投稿者/ かな (2回)-(2007/08/09(Thu) 13:28:05)

Blue さん ありがとうございます!

>> 3つのチェックボックスのCheckedChangedイベントを割付

こんな方法があるなんて全然知りませんでした。
この方法で解決しました!本当にありがとうございました!


解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -