C#是否可以在ListView中更改e.Label值

时间:2017-12-15 10:01:52

标签: c# .net winforms listview

我有ListView我尝试edit一行。但我还需要更新e.Label中的AfterLabelEdit。是否有任何解决方法可以在此事件中更改e.Label的值。例如,如果我输入了' Zip'当我点击输入时,它应该变成' Zip1'

2 个答案:

答案 0 :(得分:1)

如果您修改listview中某行的值,例如" zip" ,到" zip1" ,e.label事件中AfterLabelEdit的值将在您按Enter键后自动更改,或listview离开焦点。您无法将值e.label分配给e.label="zip1"; } e.label的值除了" zip1"之外什么都不是。这是版本之后的价值。

答案 1 :(得分:1)

您可以根据某些条件取消编辑,并为项目的文本指定新值。

Label包含标签的建议值,因此您可以根据该值编写标准。然后要取消编辑,它足以将事件参数的CancelEdit属性设置为true。然后使用其Item属性,您可以找到编辑项目并为其设置新标签。

例如:

private void listView1_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
    if (e.Label == "something")
    {
        e.CancelEdit = true;
        ((ListView)sender).Items[e.Item].Text = "something else";
    }
}