我是C#的新手,正在努力學習一些東西。例如,我無法將流程下面的內容放在一起。我做錯了什么?
我得到的問題是,當所有4個復選框都被選中時,我只得到5個作為結果,因為它們都是5個被選中的......? 而且必須是20個(4x5)
/CheckCheckedCheckboxes
int Totalchecked = 0;
if (CheckBox1.Checked)
{
Totalchecked = 5;
}
if (CheckBox2.Checked)
{
Totalchecked = 5;
}
if (CheckBox3.Checked)
{
Totalchecked = 5;
}
if (CheckBox4.Checked)
{
Totalchecked = 5;
}
var totalselected = Totalchecked ;
labelHeader.Text = Convert.ToString(totalselected)。
uj5u.com熱心網友回復:
private void button1_Click(object sender, e)。
{
int Totalchecked = 0;
int TotalValue = 0;
foreach (Control item in this.Controls)
{
if( item is CheckBox)
{
if(((CheckBox)item).Checked)
總檢查數 。
}
}
//如果你認為,每個復選框的值是5,只需乘以Totalchecked * 5
TotalValue = Totalchecked * 5。
MessageBox.Show(TotalValue.ToString())。
}
但是,當表單中包含的復選框超過這些時,上述方法就不好用了,所以只要把你的復選框添加到組框中,并且,你可以得到一個復選框的計數,如下所示:
int Totalchecked = groupBox1.Controls.OfType<CheckBox>().Where(c => c.Checked).Count()。
Updated:根據你的評論,你可以為每個復選框設定Tag值,
checkBox1.Tag = 5。
checkBox2.Tag = 10;
int totalValueOfeachCheckboxes = 0;
foreach (Control item in this.Controls)
{
if( item is CheckBox)
{
if(((CheckBox)item).Checked)。
{
totalValueOfeachCheckboxes = totalValueOfeachCheckboxes Convert.ToInt32(item.Tag)。
}
}
}
MessageBox.Show(totalValueOfeachCheckboxes.ToString())。
uj5u.com熱心網友回復:
你可以對它們進行回圈,并對表單上的控制元件進行迭代。
foreach(Control c in this.Controls)
{
if(c is CheckBox)
{
//在這里做一些事情/logic。
}
}
或者做一個更多的LINQ/Lamba型別的方法
。 var checkList = YourForm.Controls.OfType<CheckBox>().Where(x => x.Checked).ToList()。
checkList.ForEach(x => {
//在這里做事情。
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/321584.html
標籤:
上一篇:2021年3月-第01階段-Linux基礎-Linux系統的啟動流程
下一篇:如何每天更換背景?
