首页 > C#:单击listview控件中的任一单元格,改变文本内容

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) {

    }
}
【热门文章】
【热门文章】