C# ListBox Élément Sélectionné À L'Exception De Null
L'utilisateur peut cliquer sur un élément dans une zone de liste comme suit:
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
textBox2.Clear();
listBox2.Items.Clear();
string[] p =
Directory.GetFiles(
textBoxDir.Text,
listBox1.SelectedItem.ToString(),
SearchOption.AllDirectories);
foreach (string open in p)
......
}
Tout est très bien. Toutefois, si l'utilisateur clique sur un espace vide dans la zone de liste, il affiche l'erreur suivante:
System.NullReferenceException
C'est à cause de cette ligne de code:
string[] p =
Directory.GetFiles(
textBoxDir.Text,
listBox1.SelectedItem.ToString(),
SearchOption.AllDirectories);
Quelqu'un aurait-il un travail intelligent? Ou suggérer une aalternative à mon code?
Avez-vous déboguer votre code?
OriginalL'auteur Nigel.Harris | 2013-04-27
Vous devez vous connecter pour publier un commentaire.
La solution de contournement consiste à vérifier une valeur null, et la sortie précoce.
Cela permet d'éviter la nidification introduit par les autres réponses, ce qui rend le code moins lisible.
OriginalL'auteur devdigital
Vous pouvez vérifier
SelectedIndex
avant que de ligne:OriginalL'auteur Hossein Narimani Rad
Comment faire un
ce qui devrait éviter que l'erreur se produise.
OriginalL'auteur mauris
Comment sur
Code Complet
OriginalL'auteur Nikhil Agrawal
viens de vérifier d'abord si listbox1.SelectedItem est vide ou n'est pas avant l'appel à cette ligne:
OriginalL'auteur lem.mallari
Toutefois, aucun de ceux-ci vous permettent de revenir en arrière et re-sélectionner dans la zone de liste. Travaille encore sur cette question - sera mise à jour.
Désolé, nouveau sur le forum et n'arrive pas à comprendre comment ajouter un code. Il fonctionne bien.
J'ai édité ton post avec votre commentaire. Pensez à lire ce Markdown aide pour formater correctement post sur un Débordement de Pile.
OriginalL'auteur fred conklin