[C#] RadioButtonのチェック状態を変更する方法
C#でRadioButtonのチェック状態を変更するには、RadioButtonコントロールのCheckedプロパティを使用します。
Checkedプロパティはブール値を取り、trueに設定するとそのRadioButtonが選択された状態になり、falseに設定すると選択が解除されます。
例えば、radioButton1.Checked = true;とすることで、radioButton1が選択されます。
通常、RadioButtonはグループ内で1つだけが選択されるため、他のRadioButtonのCheckedプロパティをfalseにする必要はありません。
RadioButtonはWindows Formsアプリケーションでよく使用され、ユーザーに選択肢を提供する際に便利です。
RadioButtonのチェック状態を変更する方法
Checkedプロパティの概要
RadioButtonは、ユーザーが選択肢の中から1つを選ぶためのコントロールです。
C#のWindowsフォームアプリケーションでは、RadioButtonのチェック状態を管理するためにCheckedプロパティを使用します。
このプロパティは、RadioButtonが選択されている場合はtrue、選択されていない場合はfalseを返します。
| プロパティ名 | 説明 |
|---|---|
| Checked | RadioButtonが選択されているかどうかを示す |
| Text | RadioButtonに表示されるテキスト |
Checkedプロパティを使った状態変更
Checkedプロパティを使用して、プログラムからRadioButtonのチェック状態を変更することができます。
以下は、RadioButtonのチェック状態を変更するサンプルコードです。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
// RadioButton1を選択状態にする
radioButton1.Checked = true;
// RadioButton2を選択状態にする
radioButton2.Checked = false;
}
}このコードでは、radioButton1を選択状態にし、radioButton2を非選択状態にしています。
これにより、ユーザーが選択できるオプションをプログラムから制御できます。
イベントハンドラでのチェック状態変更
RadioButtonのチェック状態は、イベントハンドラを使用して動的に変更することも可能です。
例えば、ボタンをクリックしたときに特定のRadioButtonを選択するように設定できます。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
// ボタンのクリックイベントにハンドラを追加
button1.Click += Button1_Click;
}
private void Button1_Click(object sender, EventArgs e)
{
// ボタンがクリックされたときにRadioButton1を選択状態にする
radioButton1.Checked = true;
}
}この例では、button1がクリックされると、radioButton1が選択されるようになります。
これにより、ユーザーインターフェースの動的な操作が可能になります。
実践例:RadioButtonのチェック状態を変更する
フォームにRadioButtonを配置する
まず、WindowsフォームにRadioButtonを配置します。
Visual Studioのデザイナーを使用して、以下の手順でRadioButtonを追加します。
- ツールボックスから
RadioButtonを選択します。 - フォーム上にドラッグして、必要な数だけ配置します。
- 各RadioButtonの
Textプロパティを設定して、表示されるラベルを変更します。
| RadioButton名 | 表示テキスト |
|---|---|
| radioButton1 | 選択肢1 |
| radioButton2 | 選択肢2 |
| radioButton3 | 選択肢3 |
ボタンでRadioButtonの状態を変更する
次に、ボタンを追加して、そのボタンをクリックしたときに特定のRadioButtonのチェック状態を変更する機能を実装します。
以下のサンプルコードを参照してください。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
// ボタンのクリックイベントにハンドラを追加
buttonChange.CheckedChanged += ButtonChange_Click;
}
private void ButtonChange_Click(object sender, EventArgs e)
{
// ボタンがクリックされたときにRadioButton2を選択状態にする
radioButton2.Checked = true;
}
}このコードでは、buttonChangeがクリックされると、radioButton2が選択されるように設定しています。
状態変更の確認方法
RadioButtonのチェック状態が正しく変更されたかどうかを確認するために、状態を表示するラベルを追加します。
ボタンをクリックした際に、選択されているRadioButtonのテキストをラベルに表示する方法を示します。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
// ボタンのクリックイベントにハンドラを追加
buttonChange.Click += ButtonChange_Click;
}
private void ButtonChange_Click(object sender, EventArgs e)
{
// RadioButton2を選択状態にする
radioButton2.Checked = true;
// 選択されているRadioButtonのテキストをラベルに表示
labelStatus.Text = "選択されているのは: " + GetCheckedRadioButtonText();
}
private string GetCheckedRadioButtonText()
{
if (radioButton1.Checked) return radioButton1.Text;
if (radioButton2.Checked) return radioButton2.Text;
if (radioButton3.Checked) return radioButton3.Text;
return "なし";
}
}このコードでは、ボタンがクリックされると、選択されているRadioButtonのテキストがlabelStatusに表示されます。
これにより、ユーザーは現在の選択状態を確認できます。
応用例
複数のRadioButtonを連動させる
複数のRadioButtonを連動させることで、ユーザーが選択したオプションに基づいて他のRadioButtonの状態を変更することができます。
以下のサンプルコードでは、radioButton1が選択された場合にradioButton2とradioButton3を非選択状態にする方法を示します。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
// RadioButtonのCheckedChangedイベントにハンドラを追加
radioButton1.CheckedChanged += RadioButton_CheckedChanged;
radioButton2.CheckedChanged += RadioButton_CheckedChanged;
radioButton3.CheckedChanged += RadioButton_CheckedChanged;
}
private void RadioButton_CheckedChanged(object sender, EventArgs e)
{
// どれかのRadioButtonが選択された場合、他を非選択にする
if (sender is RadioButton selectedRadioButton && selectedRadioButton.Checked)
{
foreach (Control control in this.Controls)
{
if (control is RadioButton radioButton && radioButton != selectedRadioButton)
{
radioButton.Checked = false;
}
}
}
}
}このコードでは、いずれかのRadioButtonが選択されると、他のRadioButtonは自動的に非選択になります。
チェック状態に応じた処理の実行
チェック状態に応じて異なる処理を実行することも可能です。
以下のサンプルコードでは、選択されたRadioButtonに基づいて異なるメッセージを表示します。
partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
// ボタンのクリックイベントにハンドラを追加
buttonExecute.Click += ButtonExecute_Click;
}
private void ButtonExecute_Click(object sender, EventArgs e)
{
string message = GetCheckedRadioButtonText();
MessageBox.Show(message);
}
private string GetCheckedRadioButtonText()
{
if (radioButton1.Checked) return "選択肢1が選ばれました。";
if (radioButton2.Checked) return "選択肢2が選ばれました。";
if (radioButton3.Checked) return "選択肢3が選ばれました。";
return "何も選択されていません。";
}
}このコードでは、ボタンがクリックされると、選択されたRadioButtonに応じたメッセージが表示されます。
データバインディングを利用した状態管理
データバインディングを利用することで、RadioButtonのチェック状態をデータソースと連携させることができます。
以下のサンプルコードでは、BindingSourceを使用して、選択されたオプションをデータソースにバインドします。
partial class MyForm : Form
{
private BindingSource bindingSource = new BindingSource();
private string selectedOption;
public MyForm()
{
InitializeComponent();
// データソースを設定
bindingSource.DataSource = this;
// RadioButtonのCheckedプロパティをデータソースにバインド
radioButton1.DataBindings.Add("Checked", bindingSource, "SelectedOption", true, DataSourceUpdateMode.OnPropertyChanged);
radioButton2.DataBindings.Add("Checked", bindingSource, "SelectedOption", true, DataSourceUpdateMode.OnPropertyChanged);
radioButton3.DataBindings.Add("Checked", bindingSource, "SelectedOption", true, DataSourceUpdateMode.OnPropertyChanged);
}
public string SelectedOption
{
get => selectedOption;
set
{
selectedOption = value;
// チェック状態を更新
radioButton1.Checked = (selectedOption == radioButton1.Text);
radioButton2.Checked = (selectedOption == radioButton2.Text);
radioButton3.Checked = (selectedOption == radioButton3.Text);
}
}
}このコードでは、SelectedOptionプロパティが変更されると、対応するRadioButtonのチェック状態が自動的に更新されます。
データバインディングを使用することで、UIとデータの同期が容易になります。
まとめ
この記事では、C#のWindowsフォームにおけるRadioButtonのチェック状態を変更する方法について詳しく解説しました。
具体的には、Checkedプロパティの使い方や、イベントハンドラを利用した状態変更、さらには複数のRadioButtonを連動させる方法やデータバインディングを活用した状態管理についても触れました。
これらの知識を活用することで、よりインタラクティブで使いやすいユーザーインターフェースを構築することが可能になります。
ぜひ、実際のプロジェクトにこれらのテクニックを取り入れて、効果的なアプリケーションを作成してみてください。