以下のようにListView
、さまざまなアイテムとItemCheck
ハンドラーを備えています。
private void ListView1_ItemCheck(object sender, ItemCheckEventArgs e)
{
if (e.NewValue == System.Windows.Forms.CheckState.Checked)
{
if (e.Index == 0)
{
ListView1.Items[1].Checked = false;
ListView1.Items[2].Checked = false;
ListView1.Items[3].Checked = false;
ListView1.Items[4].Checked = false;
ListView1.Items[5].Checked = false;
ListView1.Items[6].Checked = false;
ListView1.Items[7].Checked = false;
}
else
{
ListView1.Items[0].Checked = false;
}
}
}
基本的に最初の項目は「なし」なので、それをチェックすると、他のすべての項目がチェックされなくなります (逆も同様です)。時折、プログラムがコード内の項目をチェックしますが、これが問題を引き起こしていると思います。私は、呼び出しがユーザーからではなくプログラムから来ている場合と等しいTreeViewEventArgs
というフィールドがあることを知っています。Action
TreeViewAction.Unkown
ListViewItem
コードによってチェックされるのではなく、ユーザーによってチェックされているかどうかを確認する方法はありますか?