CheckBoxとは?
CheckBox(チェックボックス)とは、ONかOFFを選択させるためのコントロールです。
チェックボックスの状態
チェックボックスの状態はIsCheckedプロパティで取得・設定できます。状態はON、OFF、Indeterminate(不確定)の三種類です。不確定はONでもOFFでもない状態であり、IsCheckedはnullとなります。
IsThreeState
IsThreeStateプロパティをTrueにしたときのみ、状態をON、OFF、Indeterminate(不確定)の3種類となり、これをFalseにした場合はONかOFFの2種類のみの選択となります。
Indeterminate(不確定)の使い道
Indeterminate(不確定)は未選択状態を表すため、確実にユーザーの意思で選択してもらいたいときに有効です。初期値をIndeterminate(不確定)にしておき、SaveにIndeterminate(不確定)の場合は、未選択ということでエラーチェックに引っ掛けることが可能です。IsThreeStateをFalseにしていてもIsCheckedの初期値にNullを設定することが可能なため、初期値のみNullとし、一度選択したら、ONかOFFのいずれかという操作をさせることが可能です。
イベント
IsCheckedの状態が変わったときに、Checked、Unchecked、Indeterminateの3つのイベントのいずれかが通知されます。
サンプルコード
<Window x:Class="WPF014.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WPF014" mc:Ignorable="d" Title="MainWindow" Height="300" Width="300"> <Grid> <CheckBox x:Name="MyCheckBox" FontSize="20" Margin="10" Content="check box" VerticalContentAlignment="Center" Height="30" VerticalAlignment="Top" IsThreeState="False" Checked="MyCheckBox_Checked" Unchecked="MyCheckBox_Unchecked" Indeterminate="MyCheckBox_Indeterminate" IsChecked="{x:Null}"/> </Grid> </Window>
IsThreeStateをTrueにすると3種類のイベントが通知されます。
using System; using System.Windows; namespace WPF014 { /// /// MainWindow.xaml の相互作用ロジック /// public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void MyCheckBox_Checked(object sender, RoutedEventArgs e) { Console.WriteLine("MyCheckBox_Checked:" + MyCheckBox.IsChecked); } private void MyCheckBox_Unchecked(object sender, RoutedEventArgs e) { Console.WriteLine("MyCheckBox_Unchecked:" + MyCheckBox.IsChecked); } private void MyCheckBox_Indeterminate(object sender, RoutedEventArgs e) { Console.WriteLine("MyCheckBox_Indeterminate:" + MyCheckBox.IsChecked); } } }
画面イメージ
- C#WPFの道#1!WPFのプロジェクト作成方法をわかりやすく解説!
- C#WPFの道#2!StackPanelの使い方をわかりやすく解説!
- C#WPFの道#3!Gridの使い方をわかりやすく解説!
- C#WPFの道#4!コントロールの名前の付け方をわかりやすく解説!
- C#WPFの道#5!イベントの定義の仕方をわかりやすく解説!
- C#WPFの道#6!リソースとStaticResourceの定義と使い方をわかりやすく解説!
- C#WPFの道#7!コントロールのスタイル定義のやり方をわかりやすく解説!
- C#WPFの道#8!グループごとのスタイル定義とBasedOnでの継承のやり方!
- C#WPFの道#9!SQLiteの使い方をわかりやすく解説!
- C#WPFの道#10!ListViewの使い方をわかりやすく解説!
- C#WPFの道#11!ListViewのフィルタリングの方法を解説!
- C#WPFの道#12!SQLiteとListViewでマスタ設定画面の作成!
- C#WPFの道#13!Buttonに画像と文字を並べる方法とRepeatButtonとToggleButton
- C#WPFの道#14!CheckBoxとIsThreeState、Indeterminateの使い方
- C#WPFの道#15!RadioButtonの書き方と使い方を解説
- C#WPFの道#16!Expanderの書き方と使い方を解りやすく解説
- C#WPFの道#17!GroupBoxの書き方と使い方を解りやすく解説
- C#WPFの道#18!Slider(スライダー)の書き方と使い方を解りやすく解説
- C#WPFの道#19!ProgressBarの書き方と使い方を解りやすく解説
- C#WPFの道#20!ComboBoxの書き方と使い方を解りやすく解説
- C#WPFの道#21!ListBoxの書き方と使い方を解りやすく解説
- C#WPFの道#22!TabControlの書き方と使い方を解りやすく解説
- C#WPFの道#23!TreeViewの書き方と使い方を解りやすく解説
- C#WPFの道#24!TextBlock,TextBoxの改行と文字の加工を解説
- C#WPFの道#25!Menuの書き方と使い方をわかりやすく解説!
- C#WPFの道#26!ToolBarの書き方と使い方をわかりやすく解説!
- C#WPFの道#27!StatusBarの書き方と使い方をわかりやすく解説!
- C#WPFの道#28!WrapPanelの書き方と使い方をわかりやすく解説!
- C#WPFの道#29!DockPanelの書き方と使い方をわかりやすく解説!
- C#WPFの道#30!Canvasの書き方と使い方をわかりやすく解説!