[英]Uncheck all checkBoxes with C#
我正在嘗試編寫一個代碼,當單擊一個按鈕時,它將取消選中表單中的所有復選框。 我知道我能做
checkBox1.Checked = false;
checkBox2.Checked = false;
checkBox3.Checked = false;
等等,但是我有大約35個復選框,所以我希望使用一個更簡單的代碼。 我一直在網上找到像這樣的東西;
foreach (Control cBox in this.Controls)
{
if (cBox is CheckBox)
{
((CheckBox)cBox).Checked = false;
}
}
我希望使用類似的方法,而不是編寫checkBox1.Checked = false;
大約70次(因為我有2個按鈕,這兩個按鈕都需要執行各種操作,然后取消選中所有復選框。
我看到了另一個解決方案,其中涉及堆棧面板或某種類似於Java或HTML而不是C#的代碼,並且似乎還涉及將每個checkBox.Checked狀態作為自己的行寫出來,這不會為我節省任何行碼。
任何提示將不勝感激。 謝謝大家:)
使用新朋友@HandbagCrab的一些信息回答我自己的問題:
foreach (Control cBox in tabPage1.Controls)
{
if (cBox is CheckBox)
{
((CheckBox)cBox).Checked = false;
}
}
添加tabPage1
解決了我的問題。 以前,我一直在使用this.Controls
,它僅在該依賴項內限制對控件的訪問。 通過像checkBox1.Checked = false;
這樣單獨命名,我仍然能夠基於checkBox來控制其他內容checkBox1.Checked = false;
,但這只是因為我按名稱調用了它們,而不是要求代碼瀏覽所有Controls
。
您可以使用C#7.0+模式匹配:
foreach(Control control in controls)
{
if (control is CheckBox chk) chk.Checked = false;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.