C# 入門 & 実践 / C sharp

5-4. CheckBox / CheckedListBox - チェックボックス -


チェックボックスを配置して、
ボタンをクリックしてチェックボックスの状態を見ます。

        private void button1_Click(object sender, EventArgs e)
        {
            if (checkBox1.Checked)
            {
                // OK
                MessageBox.Show("チェックされています。");
            }
            else
            {
                MessageBox.Show("チェックされていません!");
            }
        }



これだけです。

次に CheckedListBox を利用してみます。
用はチェックボックスとリストボックスの合体バージョンです。

・チェックボックスをチェックするとチェックドリストボックス内のアイテムが全部チェックされる
・チェックボックスのチェックを外すとチェックドリストボックス内のアイテムが全部チェック解除される
・チェックボタンをクリックするとアイテムとその状態の一覧を表示する。
・選択されているアイテムを表示。

というものを作ってみます。

配置した checkedListBox1 のプロパティ [ Items ] ( コレクション ) となっている部分を選択して
チェックボックスに必要な分Itemを入力します。
今回は
Perl
PHP
Ruby
と入力しました。

■ プロパティに SelectionMode がありますが、 CheckedListBox では一つしか選択できないようです!

まずチェックボタンをクリックしたときの動作

        private void button1_Click(object sender, EventArgs e)
        {
            string msg = "";
            foreach ( Object o in checkedListBox1.Items)
            {
                
                msg += o.ToString() + " : ";
                int i = 0;
                // 
                foreach (Object o2 in checkedListBox1.CheckedItems)
                {
                    if (o == o2)
                    {
                        i = 1;
                    }
                }
                if (i == 1)
                {
                    msg += "Checked";
                }
                else
                {
                    msg += "no check";
                }
                msg += "\n";
            }
            msg += "\nSelected : " + checkedListBox1.Items[checkedListBox1.SelectedIndex];

            MessageBox.Show(msg, "CheckedListBox の状態");
        }

結構使い難いですね^-^;
アイテム一覧を見てその後に、チェックされているアイテム一覧と照合してチェックされているかを見ます。

チェックボックスに合わせてリスト内のチェックも変更

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {   
            // リスト側も状態を同じにする!
            for (int i = 0; i < checkedListBox1.Items.Count; i++)
            {
                checkedListBox1.SetItemChecked(i, checkBox1.Checked);
            }
        }

実行してみましょう。



上手くいきました!




5-3. TextBox テキストボックス / MaskedTextBox « 5. Windows アプリケーション » 5-5. ListBox / ComboBox - リストボックス / コンボボックス -


C# 入門 & 実践 / C sharp