[英]How to retrieve if an item in a CheckedListBox is checked or not? Winforms C#
我有一個foreach()
語句貫穿CheckedListBox
所有項目。
我如何知道一個項目是否被檢查?
如果有用,這里是代碼:
foreach (object user in checkedListBoxUsersWhoSee.Items)
{
// Privileged = if the user is checked he has privileges;
alias = user.ToString().Substring(user.ToString().Length - 3);
SelectUserID = new SqlCommand(Properties.Resources.SelectUserID + alias, TeamPWSecureBD);
userIDAuth = (int)SelectUserID.ExecuteScalar();
InsertAuths.Parameters.AddWithValue("@idPass", idPass);
InsertAuths.Parameters.AddWithValue("@idUser", userIDAuth);
InsertAuths.Parameters.AddWithValue("@Privileged", idPass);
//Code not finished
}
for (int i = 0; i < checkedListBoxUsersWhoSee.Items.Count; i++)
{
CheckState checkState = checkedListBoxUsersWhoSee.GetItemCheckState(i);
//CheckState.Checked
//CheckState.Indeterminate
//CheckState.Unchecked
}
您可以使用此代碼:
foreach (object user in checkedListBox.Items)
{
bool Privileged = checkedListBox.GetItemCheckState(checkedListBox.Items.IndexOf(user)) == CheckState.Checked;
}
試試
foreach (CheckBox user in checkedListBox1.CheckedItems)
{
}
CheckedListBox
有一個屬性CheckedItems
,它是已檢查或不確定項目的集合。
var items = checkedListBoxUsersWhoSee.CheckedItems;
更新我測試了將項目添加到CheckedListBox
並且它們沒有出現在CheckedItems
屬性下,這表明默認情況下它們是用值Unchecked
初始化的。
@Arvin 給出了正確的答案,但 idkw 他編輯了一種更令人困惑的解決問題的方法。
下面的代碼就像一個魅力,所以請編輯正確答案的人不要亂來。
foreach (object user in checkedListBoxUsersWhoSee.Items)
{
Privileged = checkedListBoxUsersWhoSee.CheckedItems.Contains(user);
...
}
我使用了以下內容:
ArrayList selected = new ArrayList();
for (int i = 0; i < chkRoles.Items.Count; i++) //chkRoles being the CheckBoxList
{
if (chkRoles.GetItemChecked(i))
selected.Add(chkRoles.Items[i].ToString()); //And I just added what was checked to the Arraylist. String values
}
最簡單的方法:
foreach(ListItem item in checkedListBoxUsersWhoSee.Items){
if (item.Selected){
// LOGIC HERE
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.