Ich habe eine listView von Elementen, in denen der Benutzer nur einen zu einem Zeitpunkt auswählen kann. Ich habe den folgenden Code, der nur richtig funktioniert, wenn ich es in einen try/catch-Block setze. Das Problem ist, dass einige der Elementnamen zu lang sind, und sie verursachen viel Leerraum für die anderen Elemente. Wenn Sie auf den Leerraum klicken, wird ArgumentOutOfRangeException
angezeigt, obwohl es sich in der gleichen Zeile wie ein Element befindet. Ich habe das gelöst, indem ich es in einen try/catch-Block geschoben habe, aber ich denke, das ist eine schmutzige Art, es zu tun, auch wenn es funktioniert. Unten ist der Code.ListView Artikelauswahl und Ausnahmebehandlung
private void listView1_DoubleClick(object sender, EventArgs e)
{
try
{
string[] arr1 = File.ReadAllLines(listView1.SelectedItems[0].Tag.ToString());
string[] arr2 = arr1[0].Split(';');
}
catch
{
//no catch
}
}
Ich möchte diese ganz vermeiden, aber ich weiß nicht, wie Sie den Code ändern, um es ohne die try/catch zu arbeiten. Ich habe versucht if(!String.IsNullOrEmpty)
, aber es funktioniert immer noch nicht. Was ist die Lösung hier?
Verwenden Sie nicht versuchen, wenn Sie listView1.SelectedItems.Count testen sollten! Dies ist ein normaler Fall. Staple auch nicht so viele Befehle in eine Zeile; schwer zu debuggen und in der Art beim Hinzufügen von Prüfungen .. – TaW
Das zugrunde liegende Problem ist, dass ich möchte, dass der Benutzer immer die Zeile, auf der das Element ist, unabhängig davon, wo er klickt, Name oder Leerzeichen auswählen. – EInherjar
Ja, das stimmt, aber mein Rat gilt immer noch! Welchen View-Modus benutzen Sie? – TaW