簡體   English   中英

如何檢索 CheckedListBox 中的項目是否被選中? Winforms C#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM