2010-05-11 3 views
0

Je suis très nouveau en C# et je n'arrive pas à trouver une bonne solution à ce que je considère comme un problème simple.Vérification et stockage de plusieurs sélections CheckBox en C#

Fondamentalement, j'essaie de déterminer quels contrôles CheckBox ont été sélectionnés par l'utilisateur, puis générer au hasard des combinaisons des sélections que l'utilisateur a faites. En tant que nouvelle que je suis, je suis conscient que vous pouvez utiliser une simple déclaration comme:

checkBox1.IsChecked == true 

je pourrais avoir une longue série d'instructions if qui mettent à jour un tableau/collection, mais on me dit que dans C# Il existe un moyen de déterminer quels CheckBox sont vérifiés en interrogeant le GroupBox dans lequel se trouvent les CheckBox. Sauf erreur (ce qui est très possible), ceci est réalisé en utilisant les fonctionnalités de Control, malheureusement je ne les ai pas encore rencontrées apprendre si quelqu'un pouvait éclaircir les choses, ce serait génial. En résumé, si quelqu'un a une solution simple pour parcourir un ensemble de checkBoxs et ne stocker que les sélectionnés, je serais très reconnaissant.

Répondre

0

Les contrôles ont une collection enfants et vous pouvez vérifier les contrôles enfants de la zone de groupe (ou vérifier récursivement la collection de contrôles enfants de tous les contrôles) pour les cases à cocher. Pour stocker ceux qui sont sélectionnés, vous devez gérer une autre collection (tableau, liste, etc.) et stocker quelque chose de significatif sur les options cochées (comme le texte affiché, une valeur sous-jacente, etc.).

0

Vous pouvez parcourir les contrôles de l'enfant dans le contrôle parent (une zone de groupe par exemple) contenant les cases à cocher:

foreach (Control c in groupBox1.Controls) 
{ 
    CheckBox checkbox = c as CheckBox; 
    if (checkbox != null) 
    { 
     if (checkbox.Checked) 
     { 
      //do something 
     } 
    } 
} 
0
 checkedListBox1.Items.Add("wtf", true); 
     checkedListBox1.Items.Add("wtf", true); 

     checkedListBox1.CheckedIndices 

Cela devrait faire l'affaire.

Questions connexes