4

私はwinformアプリケーション(.NET 4.0)を持っています

ラジオ ボタンのグループを手動で設定する方法はありますか?

4 つのラジオ ボタンがあり、そのうちの 2 つがグループ ボックスの内側にあり、残りの 2 つがそのボックスの外側にあります。それらすべてを同じグループに設定するにはどうすればよいですか?

4

4 に答える 4

7

これは別の投稿で回答されている可能性がありますが、同じように聞こえます。

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;
        }
    }
}

編集:同じことを尋ねる別の質問があります: 異なるパネルのグループとしてのラジオボタン

于 2012-04-09T15:13:53.417 に答える
2

これが 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; }
        }
      }
   }
}
于 2012-04-09T15:17:10.477 に答える
1

GroupName は、一連のラジオ ボタンを 1 つのユニットとしてグループ化するために Web.UI.RadioButton で使用されるプロパティです。同じ GroupName 値を持つすべてのラジオボタンがグループを形成します。

ただし、この機能は winform では利用できません。

したがって、winform でラジオボタンをグループ化する唯一の方法は、それらを同じコンテナー (通常はグループボックス) にまとめることです。

于 2012-04-10T01:34:06.100 に答える
-1

「検証」グループまたはすべてのコントロールを 1 つの検証にグループ化するようなものと呼ばれるプロパティがあります。そのうちの 1 つだけがチェックされます。その他はチェックを外します。

于 2012-04-09T13:26:18.993 に答える