Recuperer l'etat d'un checkbox generer dynamiquement [Résolu]

Messages postés
4
Date d'inscription
lundi 27 septembre 2004
Dernière intervention
9 septembre 2006
- 10 avril 2006 à 15:22 - Dernière réponse :
Messages postés
4
Date d'inscription
lundi 27 septembre 2004
Dernière intervention
9 septembre 2006
- 10 avril 2006 à 19:36
Bonjour à tous !



Mon gros probleme est dans le titre ;)



En faite j'ai generé des checkbox dynamiquement et ensuite je voudrai
recuperer ceux qui sont à l'etat checked pour ensuite pour recuperer
leur nom ( sport, actualité,etc...)



Merci beaucoup pour votre aide



PS: voici le code qui marche (mais peut etre tres beau....)



int i;


labelCat.Visible = true;


ArrayList ArrayCat = new ArrayList();




SqlDataReader Dr = SqlDa.ExecuteReader();




while (Dr.Read())

{


if (!Dr.Equals(""))


{





ArrayCat.Add(Dr.GetString(0));





}

}

Dr.Close();






for (i = 0; i <= comptCat-1; i++)

{


CheckBox cb = new CheckBox();





cb.Location = new Point (600 , 200+(i*20));


cb.Name = " checkBox"+i;


cb.Text =
ArrayCat[i].ToString();






// ajout au form


TabEnvoieMail.Controls.Add(cb);


//MessageBox.Show(cb.CheckState.ToString());





}
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
- 10 avril 2006 à 16:20
3
Merci
Salut, inscris tous tes CheckBox au même évènement, puis dans la fonction de rappel cast le sender pour savoir quel objet a généré l'évènement.

public partial class Form1 : Form
{
public Form1( )
{
InitializeComponent( );


string cnxString = @" ..."


string cmdString = @" ... ";


List< string > list = new List< string >( );


using ( SqlConnection cnx = new SqlConnection( cnxString ) )
{
cnx.Open( );


SqlCommand cmd = new SqlCommand( cmdString, cnx );


using ( SqlDataReader reader = cmd.ExecuteReader( ) )
{
while ( reader.Read( ) )
{
string s = reader[ 0 ].ToString( );

if ( s != String.Empty )
list.Add( s );
}
}
}


CheckBox[ ] boxes = new CheckBox[ list.Count ];


for ( int i = 0; i < list.Count; i++ )
{
boxes[ i ] = new CheckBox( );
boxes[ i ].Location = new Point( 10, 28 * i );
boxes[ i ].Text = ( string )list[ i ];
boxes[ i ].CheckStateChanged += delegate( object sd, EventArgs e )
{
CheckBox cb = ( CheckBox )sd;
MessageBox.Show( cb.Text + " is " + cb.CheckState );
};
}


this.Controls.AddRange( boxes );
}
}

Merci Lutinore 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de Lutinore
Messages postés
4
Date d'inscription
lundi 27 septembre 2004
Dernière intervention
9 septembre 2006
- 10 avril 2006 à 19:36
0
Merci
Merci beaucoup Lunitore :)



Ncode
Commenter la réponse de ncode

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.