Dev Express的CheckedListBoxControl全選及遍歷方法
CheckedListBoxControl實現全選與取消的功能:
//設定全選功能,適合CheckedListBoxControl與CheckedListBox控制元件
//新增一個名為Select_All的CheckedListBoxControl控制元件,由其控制CheckedListBox是全選還是全不選。
private void Select_All_CheckedChanged(object sender, EventArgs e)
{
if (Select_All.Checked)
{
for (int j = 0; j < checkedLBC_JobStatus.Items.Count; j++)
checkedLBC_JobStatus.SetItemChecked(j, true);
}
else
{
for (int j = 0; j < checkedLBC_JobStatus.Items.Count; j++)
checkedLBC_JobStatus.SetItemChecked(j, false);
}
}
CheckBoxListControl實現遍歷得到每個選項的值的功能:
對於此功能,今天作了許多嘗試,最後找到了解決方法,關於各種取值的結果嘗試心得,說明如下:
1.嘗試方法一
strCollected = checkedLBC_JobStatus.GetItemValue(checkedLBC_JobStatus.Items[i]);
此方法適應於WinForm自帶的CheckedListBox控制元件,取的控制元件文字對應的值而不是文字內容,而不適用於DevExpress的CheckedListBoxControl控制元件
2.嘗試方法二
strCollected = checkedLBC_JobStatus.GetItemText(checkedLBC_JobStatus.Items[i]);
此方法適用於WinForm自帶的CheckedListBox控制元件,取的是控制元件文對應的內容,而不適用於DevExpress的CheckedListBoxControl控制元件
3.嘗試方法三
strCollected = checkedLBC_JobStatus.SelectedValue.ToString();
此方法可以取值,但只能取到選中的一項,而不能遍歷所有選中項
以上說明,希望能夠幫助那些苦尋方法的朋友,正確的遍歷方法,程式碼如下,得解請給贊,以慰藉辛苦付出,謝謝!
//遍歷選中的值 ,並將選中的項組合成為一個字串。
//strCollected = checkedLBC_JobStatus.GetItemText(checkedLBC_JobStatus.Items[i]);
//strCollected = checkedLBC_JobStatus.GetItemValue(checkedLBC_JobStatus.Items[i]);
string strCollected = string.Empty;
for (int i = 0; i < checkedLBC_JobStatus.Items.Count; i++)
{
//checkedLBC_JobStatus.SetItemChecked(i, true);
if (checkedLBC_JobStatus.GetItemChecked(i))
{
if (strCollected == string.Empty)
{
//strCollected = checkedLBC_JobStatus.SelectedValue.ToString();
strCollected = this.checkedLBC_JobStatus.GetItemValue(i).ToString();
}
else
{
//strCollected = strCollected + "," + checkedLBC_JobStatus.SelectedValue.ToString();
strCollected = strCollected + "," + checkedLBC_JobStatus.GetItemValue(i).ToString();
}
}
}
string JobStatus = string.Format(" and uvw_ppJobQuery.JobStatusID in {0}", "(" + strCollected.ToString() + ")");