2017-11-10 22 views
0

アイテムの特定の値を取得できないのはなぜですか?チェックされたすべてのCheckListBoxアイテムから値を取得

List<int> IdFundosSelecionados = new List<int>(); 

for(int i = 0; i < checkedListBox1.Items.Count; i++) 
{ 
    if(checkedListBox1.GetItemCheckState(i) == CheckState.Checked) 
    { 
     IdFundosSelecionados.Add(checkedListBox1.Items[i].value) //it isn't working 
    }    
} 

OBS:私はこれはあなたの問題を解決しますここで(それがこのquestion異なるのです)をチェック値が選択されていない取得する

+0

可能性のある重複した[C#にCheckedListBoxチェックした場合](https://stackoverflow.com/questions/24074470/c-sharp-checkedlistbox-if-checked) – MethodMan

+0

@MethodMan質問は似ていますが同じではありません –

+0

@MethodManいいえ、私は両方の質問を読んできましたが、この仲間はチェックボックスがチェックされているのではなく、なぜ彼がチェックボックスのテキストを挿入できないのか理解しようとしています彼のリスト。 – napi15

答えて

1

をしたいと思います:

for(int i = 0; i < checkedListBox1.Items.Count; i++) 
{ 
    if(checkedListBox1.GetItemCheckState(i) == CheckState.Checked) 
     { 
      IdFundosSelecionados.Add(((int)checkedListBox1.Items[i])) 
     } 
} 

はところであなたはこれを試してみました?

List<int> IdFundosSelecionados = new List<int>(); 

    for(int i = 0; i < checkedListBox1.Items.Count; i++) 
    { 
     if(checkedListBox1.GetItemCheckState(i) == CheckState.Checked) 
     { 
      IdFundosSelecionados.Add(checkedListBox1.Items[i].text) 
     }    
    } 

私のお気に入りのイージー一つは(私見)のようになります。

List<int> IdFundosSelecionados = new List<int>(); 
foreach (ListItem li1 in checkedListBox1.CheckedItems) 
       { 
        if (li1.Selected == true) 
        { 
         IdFundosSelecionados.Add(li1.Text) 

        } 
       } 
+0

2番目のアプローチは最初の答えとの対比でなければなりません。私はそれが拳の答えを使用する場合は反復するのが最善だろうと言います。 – MethodMan

+0

@MethodManあなたはループを表示しなければならないのですか? – napi15

+2

"タイプ '文字列'を 'System.Data.DataRowView'に変換できません" –

0

それはあなたがにCheckedListBoxにあなたの項目を追加する方法に依存しますが、あなただけのどんなオブジェクト型に項目をキャストする必要がありますそれらを追加しました。そして、いったん元の型を取得したら、それをintに変換することができます(IdFundosSelecionadesはListなので)。例えば

...の

public Form1() 
{ 
    InitializeComponent(); 
    for (int i = 1; i < 15; i++) 
     checkedListBox1.Items.Add(i); 
} 

private void button1_Click(object sender, EventArgs e) 
{ 
    for (int i = 0; i < checkedListBox1.Items.Count; i++) 
    { 
     if (checkedListBox1.GetItemCheckState(i) == CheckState.Checked) 
      IdFundosSelecionades.Add((int)checkedListBox1.Items[i]); 
      // added as int, so cast as int 
    } 
} 
関連する問題