.Net Batch Update Control Properties via Code E.G. Check/UnCheck All CheckBox – 在.Net中批次更新控件屬性

已經忘了之前有沒有把這個筆記寫好和發到網誌上了…
今天想和大家分享的技術是用來批次更新 控件屬性的..
有時候使用這個方法十分方便
E.G.
有時候你可能會建立一個按鈕給使用者Check/Uncheck 所有CheckBox
或者需要設定在某一個GroupBox內的 TextBox 屬性變成Enable = False等等

解決方法十分簡單…
在可以的情況下.
所相同性質的控件..放在GroupBoxPanel中..
以便管理..
E.G.
我建立一個Panel 改名為”p_ReportSettings
入面建立了很多的CheckBox..用來設定那一個Report將會被Generate

之後在Panel外建立另一個CheckBox來 作Check/Uncheck All CheckBox之用
之後便可以加入以下的Code用來找出所有在Panel 入有CheckBox 屬性 的控件出來了
E.G.

VB.Net

Private Sub cb_ReportCheckAll_CheckedChanged(sender as Object, e as EventArgs) _
     Handles cb_ReportCheckAll.CheckedChanged

  Dim CheckAll As Boolean = Not cb_ReportCheckAll.Checked

        For Each c In pl_ReportSettings.Controls
            If TypeOf (c) Is CheckBox Then
                CType(c, CheckBox).Checked = CheckAll
            End If

    Next
End Sub

C#

private void cb_ReportCheckAll_CheckedChanged(object sender, EventArgs e)
{

	bool CheckAll = !cb_ReportCheckAll.Checked;

	foreach (object c_loopVariable in pl_ReportSettings.Controls) {

		if ((c_loopVariable) is CheckBox) {
			((CheckBox)c_loopVariable).Checked = CheckAll;
		}

	}
}

Hope you find it useful

Leave a Reply