2012-04-04 7 views
3

Ich habe eine ListView in einem C# -basierten Win-Form-Projekt. Ist es möglich, die maximale Länge des Titels aller ListViewItem innerhalb der ListView zu begrenzen?Begrenzung der maximalen Textlänge von ListViewItem?

UPDATE

ich die Eingabelänge bedeuten, habe ich den Artikel bearbeitet, so dass die Nutzer die Artikel

UPDATE2 umbenennen

rechts, dann ist es "der Text" genannt von dieser Artikel, nicht der Titel.

+0

Ja ... Sie kontrollieren, was in den ListView geht, oder? Lassen Sie also keine Gegenstände mit einem Titel länger als Ihr Maximum zu. Oder verstehe ich deine Frage falsch? –

+0

versuchen Sie dies [C# begrenzen die Länge einer Zeichenfolge] (http://stackoverflow.com/questions/3825979/cli-limit-the-length-of-a-string) – PresleyDias

Antwort

3

Sie die label after edit event eines Listview nutzen können. Hier ist ein Beispiel.

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

    } 
} 

Denken Sie daran, seine heikel, nicht einfach, werden Sie kümmern sich bis auf wenige Ausnahmen nehmen, aber das ist Hausaufgaben .. Der obige Code ist nicht funktionierenden Code, aber Sie haben die Idee jetzt, wie etwa gehen es. Lesen Sie die Dokumentation gut, es gibt ein schönes Beispiel und eine Warnung, die mit diesem Ereignis verbunden ist.

0

Was meinst du ListViewItem Titel? Ist es der Gegenstandstext, den du meinst? Ich glaube, was auch immer abrufbar ist, ist fixierbar und kontrollierbar. Wenn es der Itemtext ist, können Sie eine Prüfmethode

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

schreiben und es kann dann zugewiesen werden, wie

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