如何检索 CheckedListBox 中的项目是否被选中?窗体 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
}
尝试
foreach (CheckBox user in checkedListBox1.CheckedItems)
{
}
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;
}
CheckedListBox
有一个 属性 CheckedItems
,它是选中或不确定项目的集合。
var items = checkedListBoxUsersWhoSee.CheckedItems;
更新
我测试了将项目添加到 CheckedListBox
并且它们没有出现在 CheckedItems
属性 下,这表明默认情况下它们被初始化为值 Unchecked
.
@Arvin 给出了正确的答案,但据我所知,他编辑了一种更混乱的解决问题的方法。
下面的代码非常有用所以请编辑正确答案的人停止胡闹。
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
}
}
我有一个 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
}
尝试
foreach (CheckBox user in checkedListBox1.CheckedItems)
{
}
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;
}
CheckedListBox
有一个 属性 CheckedItems
,它是选中或不确定项目的集合。
var items = checkedListBoxUsersWhoSee.CheckedItems;
更新
我测试了将项目添加到 CheckedListBox
并且它们没有出现在 CheckedItems
属性 下,这表明默认情况下它们被初始化为值 Unchecked
.
@Arvin 给出了正确的答案,但据我所知,他编辑了一种更混乱的解决问题的方法。
下面的代码非常有用所以请编辑正确答案的人停止胡闹。
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
}
}