2012-04-04 13 views
3

私はC#ベースのwin-formプロジェクトでListViewを持っています。 ListView内のすべてのListViewItemのタイトルの最大長を制限することはできますか?ListViewItemの最大テキスト長を制限しますか?

UPDATE

私は入力の長さを意味し、ユーザーがアイテムに

の名前を変更することができますので、私は、編集可能に項目を設定アップデート2

右、それはの「テキスト」と呼ばれていますその項目ではなくタイトルです。

+0

はい...あなたはListViewに入るものを制御しますか?だからあなたの最大値よりも長いタイトルを持つアイテムは許可しないでください。あるいは私はあなたの質問を誤解していますか? –

+0

これを試してください[C#は文字列の長さを制限します](http://stackoverflow.com/questions/3825979/c-limit-the-length-of-a-string) – PresleyDias

答えて

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

    } 
} 

そのトリッキーな、簡単ではありません、あなたはいくつかの例外の世話をする必要がありますが、覚えておいてください、しかしthatsの宿題は...上記のコードは、作業コードではありませんが、程度を行くためにどのように今のアイデアを持っていますそれ。ドキュメントをよく読んでください。このイベントに関連した素晴らしい例と警告があります。

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}); 
関連する問題