J'ai un checkBox dans mon application Windows appelé "Continuous". Lorsque l'utilisateur vérifie cela et clique sur le bouton "Traiter", l'application traitera tous les éléments de la liste. Cependant, si l'utilisateur ne coche pas cette case, il ne traitera que le premier de la liste.C# logique pour implémenter la boucle foreach lorsque la case à cocher est cochée
Dans ma méthode Process, je souhaite écrire une condition if pour vérifier la case à cocher cochée et exécuter la boucle foreach sinon exécuter uniquement le premier élément.
Voici mon code
private void btnProcess_Clicl()
{
bool bDone = false;
while(!bDone)
{
LoadList(); //This will load the list from database into listBox
if(listBox.items.Count > 0)
{
ProcessList();
}
if(!chkBox.Checked)
bDone = true;
}
}
J'ai mise en œuvre de la boucle foreach à la liste traiter dans la méthode processlist(). Y a-t-il moyen d'éviter l'exécution de la méthode LoadList() si l'utilisateur vérifie checkBox en continu? LoadList() remplira le listBox à partir de la base de données.
Est-ce que le problème que vous voulez seulement essayer 'ProcessList()' une fois si la case est cochée, ou est-ce que vous voulez éviter de charger la liste entière de la DB si elle n'est pas vérifiée? – AllenG
Faites attention ... il semble que vous voulez modifier la liste que vous bouclez. Vous ne pouvez pas le faire à l'intérieur d'une boucle foreach. –
Pourquoi votre if (! ChkBox.Checked) est-il en bas? Je ne sais pas vraiment ce que vous me demandez, mais sans plus d'explications, je suppose que vous devriez vérifier si cette case est cochée ou non avant de faire quoi que ce soit. –