私はwinformアプリケーション(.NET 4.0)を持っています
ラジオ ボタンのグループを手動で設定する方法はありますか?
4 つのラジオ ボタンがあり、そのうちの 2 つがグループ ボックスの内側にあり、残りの 2 つがそのボックスの外側にあります。それらすべてを同じグループに設定するにはどうすればよいですか?
私はwinformアプリケーション(.NET 4.0)を持っています
ラジオ ボタンのグループを手動で設定する方法はありますか?
4 つのラジオ ボタンがあり、そのうちの 2 つがグループ ボックスの内側にあり、残りの 2 つがそのボックスの外側にあります。それらすべてを同じグループに設定するにはどうすればよいですか?
これは別の投稿で回答されている可能性がありますが、同じように聞こえます。
C#で異なる親コントロールを使用してWindowsフォームラジオボタンをグループ化する
これは受け入れられた解決策でした:
これを手動で処理する必要があるのではないかと思います...実際にはそれほど悪くはありません。おそらく、すべてのRadioButtonをリストに格納し、それらすべてに単一のイベントハンドラーを使用できます。
private List<RadioButton> _radioButtonGroup = new List<RadioButton>(); private void radioButton_CheckedChanged(object sender, EventArgs e) { RadioButton rb = (RadioButton)sender; if (rb.Checked) { foreach(RadioButton other in _radioButtonGroup) { if (other == rb) { continue; } other.Checked = false; } } }
編集:同じことを尋ねる別の質問があります: 異なるパネルのグループとしてのラジオボタン
これが WinForms で可能かどうかはわかりません。
ドキュメントによると:
Form などの特定のコンテナー内のすべての RadioButton コントロールは、グループを構成します。
ただし、クラスを自分で作成することもできます
public class ButtonGroup {
private IList<RadioButton> radiogroup;
public ButtonGroup(IEnumerable<RadioButton> selection) {
radiogroup = new List<RadioButton>(selection);
foreach (RadioButton item in selection) {
item.CheckedChanged += uncheckOthers;
}
}
private void uncheckOthers(object sender, EventArgs e) {
if (((RadioButton)sender).Checked) {
foreach (RadioButton item in radiogroup) {
if (item != sender) { item.Checked = false; }
}
}
}
}
GroupName は、一連のラジオ ボタンを 1 つのユニットとしてグループ化するために Web.UI.RadioButton で使用されるプロパティです。同じ GroupName 値を持つすべてのラジオボタンがグループを形成します。
ただし、この機能は winform では利用できません。
したがって、winform でラジオボタンをグループ化する唯一の方法は、それらを同じコンテナー (通常はグループボックス) にまとめることです。
「検証」グループまたはすべてのコントロールを 1 つの検証にグループ化するようなものと呼ばれるプロパティがあります。そのうちの 1 つだけがチェックされます。その他はチェックを外します。