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

わんくま同盟

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

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


(過去ログ 51 を表示中)
■28008 / )  Re[5]: チェックボックスに関して
□投稿者/ カドルドエグ (50回)-(2008/11/18(Tue) 18:18:46)
2008/11/18(Tue) 18:21:26 編集(投稿者)
No28002 (カイジ さん) に返信
まんごーぷりんさんが 27953 にてC#3.0の特性を生かしたかっこいいコードを示しておられますが…。
敢えて別解として泥臭い(しかもIDEの機能に依存)方法を示してみます^^;

※テスト環境:VS2005(C#2.0)
※フォームにはチェックボックスが4つあるだけ
※初期値が全てチェック済ということで、デザイナで最初に4つのCheckedプロパティをTrueにしておく
※jpg用、bmp用、wma用の各チェックボックスのCheckedChangedイベントにChangeAllを設定しておく

        private void chkAll_CheckedChanged(object sender, EventArgs e)
        {
            chkBMP.CheckedChanged -= new EventHandler(ChangeAll);
            chkJPG.CheckedChanged -= new EventHandler(ChangeAll);
            chkWMA.CheckedChanged -= new EventHandler(ChangeAll);

            chkBMP.Checked = chkJPG.Checked = chkWMA.Checked = chkAll.Checked;

            chkBMP.CheckedChanged += new EventHandler(ChangeAll);
            chkJPG.CheckedChanged += new EventHandler(ChangeAll);
            chkWMA.CheckedChanged += new EventHandler(ChangeAll);
        }
        
        private void ChangeAll(object sender, EventArgs e)
        {
            if (chkBMP.Checked && chkWMA.Checked && chkJPG.Checked)
            {
                chkAll.Checked = true;
            }
            else
            {
                chkAll.CheckedChanged -= new EventHandler(chkAll_CheckedChanged);
                chkAll.Checked = false;
                chkAll.CheckedChanged += new EventHandler(chkAll_CheckedChanged);
            }
        }
#多分こういうことなんだろうなぁ、と思いながらこちらなりに
#動かしてみましたが…。違ってたらごめんなさい。。

返信 編集キー/


管理者用

- Child Tree -