【问题标题】:C# Is it possible to change e.Label value in ListViewC# 是否可以更改 ListView 中的 e.Label 值
【发布时间】:2017-12-15 10:01:52
【问题描述】:

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

【问题讨论】:

    标签: c# .net winforms listview


    【解决方案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";
        }
    }
    

    【讨论】:

      【解决方案2】:

      如果您将 listview 中的一行的值编辑为 "zip1" ,则在您按 Enter 或 listview 后,AfterLabelEdit 事件中 e.label 的值将自动更改离开焦点。您不能像e.label="zip1"; 那样为e.label 分配值,并且e.label 的值除了“zip1”之外什么都不是,这是编辑后的值。

      【讨论】:

        猜你喜欢
        • 2011-05-02
        • 2013-04-09
        • 1970-01-01
        • 2014-10-31
        • 2019-06-17
        • 2017-07-24
        • 1970-01-01
        • 2013-10-24
        • 1970-01-01
        相关资源
        最近更新 更多