2016-07-06 7 views
0

foreach()ステートメントは、CheckedListBox内のすべてのアイテムを実行しています。CheckedListBox内の項目がチェックされているかどうかを取得する方法は? Winforms C#

アイテムがチェックされているかどうかを確認するにはどうすればよいですか?

有用なのは、ここでのコードだ場合:

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 
} 
+0

'にisChecked()'またはそのような何か? ( 'user.isChecked()'?) – Furtiro

+0

@Furtiro私はそれが簡単だったと思っています – walkman

+0

'CheckedListBox'はチェックされたアイテムのコレクションである' CheckedItems'というプロパティを持っています。 –

答えて

0

@Arvinは正しい答えを出していましたが、彼は問題を解決するより混乱した方法で編集しました。

以下のコードは、魅力のように働いていますですので、正解を編集した人に迷惑をかけないようにしてください。

foreach (object user in checkedListBoxUsersWhoSee.Items) 
{ 
     Privileged = checkedListBoxUsersWhoSee.CheckedItems.Contains(user); 
     ... 
} 
0

あなたはこのコードを使用することができます

foreach (CheckBox user in checkedListBox1.CheckedItems) 
{ 

} 
+0

CheckedItemsコレクションには、CheckedアイテムとIndeterminateアイテムの両方が含まれます。 – TaW

3
for (int i = 0; i < checkedListBoxUsersWhoSee.Items.Count; i++) 
    { 
    CheckState checkState = checkedListBoxUsersWhoSee.GetItemCheckState(i); 
    //CheckState.Checked 
    //CheckState.Indeterminate 
    //CheckState.Unchecked 
    } 
1

を試してみてください。

foreach (object user in checkedListBox.Items) 
{ 
    bool Privileged = checkedListBox.GetItemCheckState(checkedListBox.Items.IndexOf(user)) == CheckState.Checked; 
} 
+0

これは実際には間違っています。 [CheckedItems](https://msdn.microsoft.com/en-us/library/system.windows.forms.checkedlistbox.checkeditems(v = vs.110).aspx)コレクションには、チェック済みアイテムと不確定アイテムの両方が含まれます。 – TaW

+0

@TaW私はそれを修正しました – Kahbazi

0

CheckedListBoxはどのプロパティCheckedItemsを持っていますチェックまたは不確定項目の集合です。

var items = checkedListBoxUsersWhoSee.CheckedItems; 

UPDATE 私はCheckedListBoxに項目を追加テストし、彼らは、デフォルトではそれらが値Uncheckedで初期化されていることを示唆しているCheckedItemsプロパティの下に表示されませんでした。

+0

間違っています。 CheckedItemsコレクションには、CheckedアイテムとIndeterminateアイテムの両方が含まれます。 – TaW

+0

msdnによらないhttps://msdn.microsoft.com/en-us/library/system.windows.forms.checkedlistbox.checkeditems(v=vs.110).aspx。 –

+0

Read closer: '備考:コレクションはItemsコレクション内のオブジェクトのサブセットであり、System.Windows.Forms.CheckStateがCheckedまたはIndeterminateであるアイテムのみを表します。このコレクションのインデックスは昇順になっています。 – TaW

0

私は次のように使用:

   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 
       } 
関連する問題