アイテムをチェックしてからチェックを外すと、コードはまだチェックされていると考えられます。その結果、「Go」をクリックすると、チェックされていない項目も表に表示されます。この場合、Brandonが最初にチェックされ、チェックされませんでした。名前はもはや "チェック"されていませんが、テーブルはそれを引き上げます。C#ボックスがチェックされていなくてもcheckedListBoxのアイテムが選択される
これは私が持っているものです。
string filterstring = "";
private void checkedListBox_ItemCheck(object sender, ItemCheckEventArgs e)
{
if (e.NewValue == CheckState.Checked)
filterstring = "Responsible = '" + checkedListBox.Items[e.Index].ToString() + "' OR";
else
if (e.NewValue == CheckState.Unchecked)
filterstring = "";
foreach (object itemChecked in checkedListBox.CheckedItems)
{
filterstring += " Responsible = '" + itemChecked.ToString() + "' OR";
}
filterstring = filterstring.Substring(0, filterstring.LastIndexOf("OR"));
}
私は鍵がこのコードの一部であることを疑います。それがなければ、例外がスローされます:
private void checkedListBox_ItemCheck(object sender, ItemCheckEventArgs e)
{
if (e.NewValue == CheckState.Unchecked)
filterstring = "";
}
助けていただければ幸いです!
はあなたのラースをありがとうございます。残念ながら、私は例外をスローし続けます。 "mscorlib.dllで 'System.ArgumentOutOfRangeException'型の未処理の例外が発生しました。 追加情報:Lengthはゼロより小さくすることはできません。 –
@ P.CあなたのLastIndexOfラインでそれが起こっているのであれば、それは別の問題です。 LastIndexOfは-1を返しています。これはテキストの長さに使用しています。したがって、kaboomです。 – LarsTech
心配しないで...コードが間違っていました。あなたの答えは最初から正しいものでした。 –