C# winform项目中ListView控件使用CheckBoxes属性实现单选功能
在做项目时需要使用ListView控件的CheckBoxes属性显示,还要在点击行时自动选中CheckBoxes和点击选中CheckBoxes时自动显示正行选中状态的单选功能。
效果图:
主要利用两个事件:listView1_ItemCheck和listView1_SelectedIndexChanged事件。
上代码:
private void listView1_ItemCheck(object sender, ItemCheckEventArgs e)
{
if (!listView1.Items[e.Index].Checked)//如果点击的CheckBoxes没有选中
{
foreach (ListViewItem lv in listView1.Items)
{
if (lv.Checked)//取消所有已选中的CheckBoxes
{
lv.Checked = false;
lv.Selected = false;
// lv.BackColor = Color.White;
}
}
listView1.Items[e.Index].Selected = true;
// lv.Checked = false;
}
//int count = listView1.Items.Count;
//ListViewItem item = listView1.Items[e.Index];
//if (item.Checked)
//{
// for (int i = 0; i < count; i++)
// {
// if (i != e.Index)
// {
// ListViewItem item1 = listView1.Items[i];
// item1.Checked = false;
// }
// }
//}
}
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
foreach (ListViewItem lv in listView1.Items)
{
if (lv.Selected)
{
//if (lv.Checked)
//{
// //lv.Checked = false;
//}
//else
//{
lv.Checked = true;
//}
}
else
{
if (listView1.SelectedIndices.Count>0)
{
if (lv.Checked)
{
lv.Checked = false;
}
}
}
}
}
另附源码Demo地址:http://download.csdn.net/detail/blacet/7342363