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. パネル内のテーブル内のすべてのテキストボックスをクリアするC#
- 2. PHPでページのすべての要素をクリアするには?
- 3. マスターページでASP.NETページのすべてのコントロールをクリアする
- 4. フォーム内のすべてのテキストボックスのテキストをクリアするには?
- 5. VBスクリプトからVBA内のすべてのブレークポイントをクリアする
- 6. テーブルまたはdiv内のすべてのコントロールをクリアする
- 7. 範囲内のすべての非表示セルをクリアする
- 8. Visual Studioソリューション内のすべてのブレークポイントをクリアする
- 9. Magentoカート内のすべてのカートアイテムをクリアする方法
- 10. リスト内のすべてのラジオボタンを選択する-Jquery
- 11. C++のすべてのファイル内のデータをクリアします
- 12. UIWebViewすべてのCookieをクリアする
- 13. すべてのパネル値をクリアする
- 14. アラモファイアすべてのクッキーをクリアする
- 15. ページをクリアする
- 16. Asp.netコア内のすべてのクッキーをクリア
- 17. すべてのラジオボタンをチェックして次のページに移動します
- 18. リサイクラービュー内のすべてのアイテムのラジオボタンのチェック状態を取得する
- 19. ソースファイル内のすべてのページがコメント
- 20. UITableView内のすべてのUITextFieldの変更をUIButtonでクリアする
- 21. 私のシステムは「クリア」ですか?すべてをクリアしない?
- 22. すべてのグリッドビューの値をクリア
- 23. Pythonのすべてのlru_cacheをクリア
- 24. 印刷内容すべてのページ
- 25. イベントハンドラをすべてクリアする
- 26. chromeappすべての通知をクリア
- 27. ストアからすべてのレコードをクリア
- 28. すべてのselect2オプションをクリア
- 29. Javascriptすべてのクッキーをクリア
- 30. ワンクリックですべてのラジオボタンを選択
JQueryでこれを行う効率的な方法があると確信しています。しかし、専門家ではないが、私は思ういくつかの結果をもたらすことができる迅速なGoogle。 –
@Joachim - 彼はWinFormsを使用しています。 – gangelo
すべてのコントロールをループし、そのタイプをチェックします。ラジオボタンであれば削除してください。 –