0

フォームには多数のラジオボタンがあります。これらはパネル内にはありませんが、この例では、フォーム上の唯一のラジオセットです。

初期化時には、ボタンは選択されません。(同様に、これはラジオの適切な実装ではありませんが、私の制御の範囲外です。この例では、フォームはラジオボタンが選択されていない状態で開始する必要があります。)

現在、私はかなり長いif-elseステートメントを使用して、各ボタンを一度に1つずつチェックしていますが、ボタンがチェックされていないかどうかをすぐに判断する簡単な方法があるはずです。定義上、最大1つの選択が強制されるため、ボタンはすでにグループとして機能します。

ラジオボタンが選択されていないかどうかを検出するためのベストプラクティスは何でしょうか。

4

2 に答える 2

5

ラジオボタンのコレクションはいつでも作成できます。

RadioButton[] radioButtons = new RadioButton[] { radioButton1, radioButton2 };

if (!radioButtons.Any(rb => rb.Checked))
    // No radio buttons are checked

また、この同様の質問(https://stackoverflow.com/questions/1797907)を参照として使用すると、次のようなことができます。

if(!Controls.OfType<RadioButton>().Any(rb => rb.Checked))
    // No radio buttons are checked
于 2012-07-10T19:54:37.253 に答える
1

私はこのようなものを推測します:

form.Controls.Where(x => x is RadioButton).Where(x => x.Selected == true).Count()

または、配列またはある種のリストでそれらを使用できる場合は、すべてのコントロールをループする必要はありません。

私はあなたがそれを少しスピードアップできると思います:

form.Controls.Where(x => x is RadioButton && ((RadioButton)x).Selected == true).Count()
于 2012-07-10T19:55:51.060 に答える