Ajout Dynamique de CheckBox dans DataGridView En C#

dib_az Messages postés 7 Date d'inscription samedi 2 décembre 2000 Statut Membre Dernière intervention 20 août 2009 - 23 avril 2009 à 17:50
 oualidfa - 20 déc. 2012 à 16:27
Bonjour Tout le monde j'espère que vous allez repondre à ma question:

ça fait un moment que je cherche comment ajouter dans un DataGridView des CheckBox d'une façon dynamique mais j'arrive pas ?

Voila ma solution finale :
DataTable

dt = _wimportExport.ExportData(_pathFile); //je recupere un dataTable dans la BDD

DataColumn col = 
new
DataColumn(
"Sélection",
typeof(
Boolean),
null, System.Data.
MappingType.Element);dt.Columns.Add(col);

foreach (
DataRow r
in dt.Rows)  r["Sélection"] true;dgLstImport.DataSource dt;  dgLstImport.Refresh(); dgLstImport.Visible =
true;

Mais pour simuler l'evenement de cocher et décocher du CheckBox s'est pas possible (j'ai essayé avec presque tout les evenements du DataGridView).

Donc c une perssone me donne une solution pour Ajouter direct des CheckBox c plus simple (moi j'arrive pas) ?

Merci pour votre aide .

5 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
23 avril 2009 à 20:05
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 avril 2009 à 13:47
topic déplacé
0
dib_az Messages postés 7 Date d'inscription samedi 2 décembre 2000 Statut Membre Dernière intervention 20 août 2009
27 avril 2009 à 13:37
Salut,


Merci pour votre aide, mais le contenu du dossier ne donne pas vraiment d'explications sur ce que je veux faire réellement.(ajout d'un CheckBox)
0
dib_az Messages postés 7 Date d'inscription samedi 2 décembre 2000 Statut Membre Dernière intervention 20 août 2009
27 avril 2009 à 15:36
Merci pour votre aide finalement j'ai reussi à le faire en conbinant les evenments du datagridview:
/********************************/
/****** INITIALISATION ***********/
/********************************/
private void importData_Click(
object sender,
EventArgs e)

{
   DataTable

dt = _wimportExport.ExportData(_pathFile); 

   /*---- Definition de la colonne---*/
   DataColumn col =
new
DataColumn(
"Sélection",
typeof(
Boolean),
null, System.Data.
MappingType.Element);

   /*--- Ajout de la  column  ---*/
   dt.Columns.Add(col);
   foreach (
DataRow r
in dt.Rows)  r[
"Sélection"] =
true;

   /* -- Liaison du dataGridview avec le DataTable(dt) --*/
   dgLstImport.DataSource = dt; 
   dgLstImport.Refresh();
   dgLstImport.Visible =

true;
   return
;

}//Fin importData_Click

private
void dgLstImport_CellValueChanged(
object sender,
DataGridViewCellEventArgs e)
{

   if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
   {
      //Si je suis sur la cellule CheckBox (dans mon exemple c'est la dernier cellule)

       if (e.ColumnIndex == (dgLstImport.Columns.Count - 1))       
         {
            dgLstImport.CurrentCell = dgLstImport.Rows[e.RowIndex].Cells[e.ColumnIndex - 1]; 
         }
   }//Fin if
}//Fin CelValueChanged

private
void dgLstImport_CellClick(
object sender,
DataGridViewCellEventArgs e)
{

if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
{
   //Si je click sur la cellule du checkBox sinon ne fait rien

   if (e.ColumnIndex == (dgLstImport.Columns.Count - 1))
   {

   string value = dgLstImport.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();

   if (value.Equals(
"True"))
   {
   dgLstImport.Rows[e.RowIndex].Cells[e.ColumnIndex].Value =
false;
   }
   
if (value.Equals(
"False"))
   {
   dgLstImport.Rows[e.RowIndex].Cells[e.ColumnIndex].Value =
true;
   } 
   //Pour dire que l'écriture sur cette cellule est terminée.
   dgLstImport.CurrentCell = dgLstImport.Rows[e.RowIndex].Cells[(e.ColumnIndex - 1)];   
   dgLstImport.CurrentCell.Selected =
false;
   }
} //Fin if
}//Fin CellClickVoilà mon code pour  simuler l'evenement du changement d'etat du CheckBox et ça marche très bien.

Merci pour vos suggestions et c je trouve encore une autre solution je la publierai 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
[^^peur]
0
Rejoignez-nous