【发布时间】:2017-12-15 10:01:52
【问题描述】:
我有ListView,我正在尝试edit 一行。但我还需要更新AfterLabelEdit 中的e.Label。是否有任何解决方法可以在此事件中更改 e.Label 的值。例如,如果我输入了“Zip”,当我按下回车键时,它应该变成“Zip1”
【问题讨论】:
我有ListView,我正在尝试edit 一行。但我还需要更新AfterLabelEdit 中的e.Label。是否有任何解决方法可以在此事件中更改 e.Label 的值。例如,如果我输入了“Zip”,当我按下回车键时,它应该变成“Zip1”
【问题讨论】:
您可以根据某些条件取消编辑并为项目的文本分配一个新值。
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";
}
}
【讨论】:
如果您将 listview 中的一行的值编辑为 "zip1" ,则在您按 Enter 或 listview 后,AfterLabelEdit 事件中 e.label 的值将自动更改离开焦点。您不能像e.label="zip1"; 那样为e.label 分配值,并且e.label 的值除了“zip1”之外什么都不是,这是编辑后的值。
【讨论】: