Windows Formsプロジェクトには、多くの動的に生成されたラジオボタンがあります。それらは、データベースの値に基づいてチェックすることができます。ボタンのクリックですべてのラジオボタンをクリアしたい。どうやってやるの?ページ内のすべてのラジオボタンをクリアする
答えて
確認し、この:。
private void button1_Click(object sender, EventArgs e)
{
var cntls = GetAll(this, typeof(RadioButton));
foreach (Control cntrl in cntls)
{
RadioButton _rb = (RadioButton)cntrl;
if (_rb.Checked)
{
_rb.Checked = false;
}
}
}
public IEnumerable<Control> GetAll(Control control, Type type)
{
var controls = control.Controls.Cast<Control>();
return controls.SelectMany(ctrls => GetAll(ctrls, type)).Concat(controls).Where(c => c.GetType() == type);
}
_radioContainerがGroupBoxである限り、どちらもこれを行います。
private void button1_Click(object sender, EventArgs e) {
// This will remove the radiobuttons completely...
_radioContainer.Controls.OfType<RadioButton>().ToList().ForEach(p => _radioContainer.Controls.Remove(p));
// Either of the below will clear the checked state
_radioContainer.Controls.OfType<RadioButton>().ToList().ForEach(p => p.Checked = false);
foreach (RadioButton radio in _radioContainer.Controls.OfType<RadioButton>().ToList()) {
if (radio.Checked == true) {
radio.Checked = false;
break;
}
}
}
ラジオボタンが複数のグループボックスにまたがっている場合は、 "OfType"拡張子を使用して最初にグループボックスを検索し、次に各グループボックス内のラジオボタンを検索できます。 – gangelo
このような場合はわかりませんが、ラジオボタンが他のコントロール内にネストされている可能性があります。そのような場合は、すべてのコントロールのコレクションをすべて調べ、すべてのコントロールを見つけてそれらをオフにする必要があります。あなたはそれを行うには、このヘルパー関数を使用することができます。
void ExecuteOnAllChildren<U>(Control c, Action<Control> T) where U : Control
{
c.Controls.OfType<U>().ToList().ForEach(a => T(a));
foreach(Control childControl in c.Controls)
ExecuteOnAllChildren<U>(childControl, T);
}
言って、それを使用します。
ExecuteOnAllChildren<RadioButton>(this, a => { a.Checked = false; });
(私は「これは」あなたのフォームであると仮定しそれ以外の場合は、「この」フォームに置き換えて、あなたが希望置き換えのすべてをしたい)
void Button1Click(object sender, EventArgs e)
{
foreach (Control ctrl in Controls)
{
if (ctrl is Panel)
{
foreach (Control rdb in ctrl.Controls)
{
if (rdb is RadioButton && ((RadioButton)rdb).Checked == true)
{
((RadioButton)rdb).Checked = false;
}
}
}
}
}
これは、ボタンのクリックでチェックされたラジオボタンをすべてクリアします。
同様の問題が発生しましたが、これらの回答は役に立ちませんでした。
Winformダイアログを2つのラジオボタンで初期化したかったので、両方をチェックしないでください。ユーザーは何かが選択される前に(この質問のように:https://ux.stackexchange.com/questions/76181/radio-buttons-with-none-selected)明示的に選択する必要があります。
問題:最初のラジオボタン(下位のラジオボタンはTabIndex
)が常に事前にチェックされていました。手作業でチェックを外して、コンストラクタかLoad
イベントかどうかにかかわらず、もう一方をチェックしてください。
解像度:TabStop
プロパティを両方ともRadioButtons
にfalseに設定します。なぜ私に尋ねないでください。
- 1. PHPでページのすべての要素をクリアするには?
- 2. マスターページでASP.NETページのすべてのコントロールをクリアする
- 3. フォーム内のすべてのテキストボックスのテキストをクリアするには?
- 4. Visual Studioソリューション内のすべてのブレークポイントをクリアする
- 5. VBスクリプトからVBA内のすべてのブレークポイントをクリアする
- 6. UITableView内のすべてのUITextFieldの変更をUIButtonでクリアする
- 7. すべてのグリッドビューの値をクリア
- 8. 印刷内容すべてのページ
- 9. イベントハンドラをすべてクリアする
- 10. chromeappすべての通知をクリア
- 11. Javascriptすべてのクッキーをクリア
- 12. ストアからすべてのレコードをクリア
- 13. ページ内のすべてのjqgridをリロードする方法
- 14. コレクションのコレクションをクリアする - すべてのアイテムを最初にクリアするか、一度にすべてクリアしますか?
- 15. 送信後にReduxフォームをクリアする - 複数のラジオボタン
- 16. jQuery Mobileすべてのページ内のすべてのタグを選択
- 17. Subversion - すべてのファイルを削除/クリアして再コミットする
- 18. HTML5 - localStorageすべてのデータを削除してクリアする
- 19. Css特定の要素のすべてのスタイルをクリアする
- 20. すべてのラジオボタンのグループをクリックするか
- 21. 画面上のすべてのjqGridグリッドをクリアするには?
- 22. すべてのテキストボックスをクリアする(任意のショートカット)
- 23. アプリエンジンのすべてのmemcacheをクリアする方法。 Java環境
- 24. NSManagedObjectContextのすべてのオブジェクトをクリアするには?
- 25. Android:カスタムリストビューのすべてのアイテムをクリアする方法
- 26. すべてのPHPページで内部サーバエラーが発生する
- 27. Jqueryなしですべてのラジオボタンを確認する
- 28. は、ページ上のディレクトリ内のすべてのファイルを表示
- 29. 'unknown'フォームのすべてのラジオボタンを見つける
- 30. すべての要素からNSMutableArrayオブジェクトをクリアする方法
JQueryでこれを行う効率的な方法があると確信しています。しかし、専門家ではないが、私は思ういくつかの結果をもたらすことができる迅速なGoogle。 –
@Joachim - 彼はWinFormsを使用しています。 – gangelo
すべてのコントロールをループし、そのタイプをチェックします。ラジオボタンであれば削除してください。 –