2016-05-19 3 views
1

チェックリストボックスには10個のアイテムがあります。私は、最初の要素のインデックスは0、2番目の要素のインデックスは1であると考えていますので、インデックス9.私の要件は、それらがリストで発生するように要素の真のインデックスを見つけることです。私はthem.Presently私は、次のコードを使用していますが、目的の結果が得られません。たとえば、最初の要素noをチェックすると、メッセージが表示されます.2番目の要素をチェックすると、インデックス0がチェックされます.10番目の要素をチェックすると、インデックス1がチェックされます。コード?アドバイスをお願いします。winlistsのC#を使用したチェックリストボックス内のアイテムのインデックス

private void clbAnnually_ItemCheck(object sender, ItemCheckEventArgs e) 
    { 
     foreach (int indexChecked in clbAnnually.CheckedIndices) 
     { 
      MessageBox.Show("Index#: " + indexChecked.ToString() + ", is checked"); 

     } 
    } 
+0

れていません。私はちょうど現在チェックされている要素の真のインデックスを知りたい。 –

答えて

1

それを解決する方法はItemItemCheckイベントの後をチェックされますので、これは、少しトリッキーです。したがって、あなたが実際にItemCheckイベント中にあなたの現在のSelectedIndexがそれ現在ことを示すためにCheckedIndicesないかどうかをチェックするようになった一つがチェックされます

本当に
private void clbAnnually_ItemCheck(object sender, ItemCheckEventArgs e) {   
    if (!checkedListBox1.CheckedIndices.Contains(clbAnnually.SelectedIndex)) 
     MessageBox.Show("Index#: " + checkedListBox1.SelectedIndex.ToString() + ", is checked"); 
} 
+1

完璧な答えです。ありがとうございます@イアン。あなたは私の日を救った。 –

+0

@gomeshmundaはうれしいです。 :) – Ian

関連する問題