限制ListViewItem的最大文本长度?

时间:2012-04-04 07:08:25

标签: c# listview listviewitem

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

更新

我的意思是输入长度,我将项目设置为可编辑,因此用户可以重命名项目

UPDATE2

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

2 个答案:

答案 0 :(得分:3)

您可以使用列表视图的label after edit event。这是一个样本。

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

    }
}

请记住,它很棘手,而不是直截了当,你将不得不处理一些例外情况,但那是家庭作业..上面的代码不是一个有效的代码,但你现在有了解决它的想法。请仔细阅读文档,它有一个很好的示例和与此事件相关的警告。

答案 1 :(得分:0)

你是什么意思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});