2012-04-04 83 views
3

我有一个基于C#的双赢项目的ListView。是否有可能限制ListView中所有ListViewItem的标题的最大长度?限制ListViewItem的最大文本长度?

UPDATE

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

UPDATE2

权,这就是所谓的 “文本”该项目,而不是标题。

+0

是的......你确实控制了进入ListView的内容,不是吗?所以只要不允许任何题目长于最大值的项目。或者我误解了你的问题? – 2012-04-04 07:14:09

+0

试试这个[c#限制字符串的长度](http://stackoverflow.com/questions/3825979/c-limit-the-length-of-a-string) – PresleyDias 2012-04-04 07:59:51

回答

3

您可以利用ListView的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) 
    { 

    } 
} 

请记住,它的狡猾,不是简单的,你将不得不采取一些例外的照顾,但多数民众赞成功课..上面的代码是不工作的代码,但你有这个想法,现在如何去它。仔细阅读文档,它有一个很好的例子和与此事件相关的警告。

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});