listView1_ItemSelectionChanged事件
listView1_SelectedIndexChanged 事件
l两个事件都能实现上述功能
但是是有差别的
listView1_ItemSelectionChanged事件用法简单,贴个简单例子
private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
if (e.IsSelected)
{
ListViewItem myItem = new ListViewItem();
myItem = listView1.SelectedItems[0];
textBox1.Text = myItem.SubItems[0].Text;
if (myItem.SubItems[1].Text == "男")
rdbMale.Checked = true;
else rdbFemale.Checked = true;
textBox2.Text = myItem.SubItems[2].Text;
txtBirthday.Text = myItem.SubItems[3].Text;
lblAge.Text = myItem.SubItems[4].Text;
}
}
ListView1_SelectedIndexChanged 事件
只要 ListViewItem 的 Selected 属性发生改变,SelectedIndices 集合就会更改。属性更改可以编程方式发
生,也可以在用户选择项或取消选择项时发生。当用户选择某项(但没有按 Ctrl 选择多项)时,该控件首
先取消选择以前选择的项。在这种情况下,此事件会发生两次,一次是针对以前选择的每一项,一次是针对
新选择的项。
要确定在 ListView 控件中选定哪些项,请使用 SelectedItems 属性来访问
ListView.SelectedListViewItemCollection。您可以为该事件创建事件处理程序,在 ListView 控件中选定
的项发生更改的任何时间执行任务。
示例如下:
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
ListViewItem myItem = new ListViewItem();
myItem = listView1.SelectedItems[0];
textBox1.Text = myItem.SubItems[0].Text;
if (myItem.SubItems[1].Text == "男")
rdbMale.Checked = true;
else rdbFemale.Checked = true;
textBox2.Text = myItem.SubItems[2].Text;
txtBirthday.Text = myItem.SubItems[3].Text;
lblAge.Text = myItem.SubItems[4].Text;
//bl = !bl;
}
else return;
}
如果忽略了点击一次Items触发两次该事件很容易出现InvalidArgument=“0”的值对于“index”无效的问题