2012-04-04 81 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});