2017-06-28 65 views
-2

我已經動態創建了複選框。我有一個選項「全選」。如何在C#中選擇所有動態創建的複選框?如何訪問C#中動態創建的控件?

如何選擇所有已創建的動態複選框?

protected void chkbox_CheckedChanged(object sender, EventArgs e) 
{ 
    CheckBox chkBtn = new CheckBox(); 
    chkBtn = sender as CheckBox; 
    selectedTypeId.Add(Convert.ToInt16(chkBtn.Name)); 
    foreach(int id in selectedTypeId) 
    { 
     Console.WriteLine(id);  
    } 
} 
+0

您是否將動態創建的複選框保存在列表或數組中?如果沒有,您可以通過名稱找到控件或遍歷表單的'Controls'屬性並以其他方式尋找它們。 – itsme86

+0

將您創建的每個「CheckBox」添加到「List 」並遍歷列表(un-)檢查每個列表。 – DrNachtschatten

+0

@DrNachtschatten你能舉個例子嗎? –

回答

1

聲明覆選框的全局列表:

List<CheckBox> boxes; 

並在您的計劃開始實例化。

boxes = new List<CheckBox>(); 

每次您動態添加複選框時,也將它添加到您的列表中。

CheckBox chkBtn = new CheckBox(); 
boxes.Add(chkBtn); 

當您想要一次檢查它們時,請使用循環遍歷列表。

foreach(CheckBox box in boxes) 
    box.Checked = true; 
-1

你可以得到所有控制的複選框,像這樣:

var checkBoxes = this.Controls.OfType<CheckBox>(); 
checkBoxes.ToList()?.ForEach(x=>x.Checked = true); 

但通常情況下,你會把所有的複選框的組框(從UX角度)

groupBox.Controls.Add(checkBox); 

然後從羣組中獲取它們:

var checkBoxes = groupBox.Controls.OfType<CheckBox>(); 
相關問題