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

回到顶部