2012-06-06 2 views
0

Actuellement c'est mon code.Comment empêcher un listview d'ajouter une ligne vide?

 TextReader reader = new StringReader(richTextBox1.Text); 
     string[] strItems = null; 
     while (reader.Peek() != -1) 
     { 
      string nextRow = reader.ReadLine(); 
      if (!listView1.Items.ContainsKey(nextRow.GetHashCode().ToString())) 
      { 
       ListViewItem item = new ListViewItem(); 
       item.Name = nextRow.GetHashCode().ToString(); 
       strItems = nextRow.Split("-".ToCharArray()); 
       item.Text = strItems[0].ToString(); 
       try 
       { 
        item.SubItems.Add(strItems[1].ToString()); 
       } 
       catch (Exception) 
       { 
       } 
       try 
       { 
        item.SubItems.Add(strItems[2].ToString()); 
       } 
       catch (Exception) 
       { 
       } 
       try 
       { 
        item.SubItems.Add(strItems[3].ToString()); 
       } 
       catch (Exception) 
       { 
       } 
       try 
       { 
        item.SubItems.Add(strItems[4].ToString()); 
       } 
       catch (Exception) 
       { 
       } 
       listView1.Items.Add(item); 
      } 
     } 

Il Articles Rajoutons d'une zone de texte à un ListView, mais s'il y a une ligne vide dans la zone de texte, il ajoute également un élément vide à la listview. Je cherche un moyen d'arrêter cela. Toute aide est appréciée.

+3

catchs vides sont la racine de tous les maux. – ivowiblo

+1

vous pouvez remplacer '" - ". ToCharArray()' juste avec ''-'' – ivowiblo

+0

Aussi, vous pouvez éviter la duplication de code en utilisant' for (var i = 0; i <5; i ++) item.SubItems.Add (strItems [i] .ToString()); ' – ivowiblo

Répondre

1

Ajouter un si pour vérifier que:

if(!string.IsNullOrEmpty(nextRow)) { 
    execute the code you need 
} 
+0

ne fonctionne toujours pas si j'ai des lignes vides ou des espaces –

+0

nvm cela fonctionne merci beaucoup pour l'homme de l'aide :) –

+2

Par ailleurs string.IsNullOrWhiteSpace devrait prendre soin de blanc espace – Esen

Questions connexes