C#:单击listview控件中的任一单元格,改变文本内容
在listview控件中,如下图所示:
想实现以下功能:
当点击任一单元格的时候,切换其中的文本内容(在×
和√
之间切换)
代码如下:
private void listView1_SelectedIndexChanged(object sender, EventArgs e){
Point tmpPoint = listView1.PointToClient(Cursor.Position);
ListViewItem.ListViewSubItem subitem = listView1.HitTest(tmpPoint).SubItem;
if (subitem != null)
{
if (subitem.Text == "×")
{
subitem.Text = "√";
}
else if (subitem.Text == "√")
{
subitem.Text = "×";
}
}
}
问题:以上代码在执行的时候,如果鼠标在同一个单元格重复点击,其中的文本内容并不能随即切换,而需要将鼠标移出当前单元格,再移入之前的单元格,才能够切换。
回答:
将SelectedIndexChanged
事件替换成MouseClick
事件
private void listView1_MouseClick(object sender, MouseEventArgs e){
try
{
Point tmpPoint = listView1.PointToClient(Cursor.Position);
ListViewItem.ListViewSubItem subitem = listView1.HitTest(tmpPoint).SubItem;
if (subitem != null)
{
if (subitem.Text == "×")
{
subitem.Text = "√";
}
else if (subitem.Text == "√")
{
subitem.Text = "×";
}
}
}
catch (Exception ex) {
}
}
以上是 C#:单击listview控件中的任一单元格,改变文本内容 的全部内容, 来源链接: utcz.com/p/189302.html