限制ListViewItem的最大文本长度

本文关键字:文本 ListViewItem 限制 | 更新日期: 2023-09-27 18:30:08

我在一个基于C#的获胜表单项目中有一个ListView。是否可以限制ListView中所有ListViewItem的标题的最大长度?

更新

我指的是输入长度,我将项目设置为可编辑,这样用户就可以将项目重命名为

更新2

对,它被称为该项目的"文本",而不是标题。

限制ListViewItem的最大文本长度

您可以在列表视图的编辑事件后使用标签。这是一个样品。

private void listview1_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
    try
    {
        const int maxPermittedLength = 1;
        if (e.Label.Length > maxPermittedLength)
        {
            //trim text
            listview1.Items[e.Item].SubItems[0].Text = listview1.Items[e.Item].SubItems[0].Text.Substring(0, maxPermittedLength); //or something similar
            //or
            //show a warning message
            //or
            e.CancelEdit = true; //cancel the edit
        }
    }
    catch (Exception ex)
    {
    }
}

记住,这很棘手,并不简单,你必须处理一些例外情况,但这是家庭作业。。上面的代码不是一个工作代码,但你现在已经知道如何进行了。好好阅读文档,它有一个很好的例子和与此事件相关的警告。

ListViewItem的标题是什么意思?你的意思是项目文本吗?我相信任何可收回的东西都是可修复和可控的。如果是项目文本,你可以写一个检查方法

public string SimplifyTxt(string input)
{
    if(input.Length>LIMIT_NUMBER)
    {
       //please shorten the string before display
    }
    return retStr;
}

然后可以将其指定为

listview1.items.add(new Listviewitem{Text=retVal});