Ajout Dynamique de CheckBox dans DataGridView En C#
dib_az
Messages postés7Date d'inscriptionsamedi 2 décembre 2000StatutMembreDernière intervention20 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 .
A voir également:
Ajout Dynamique de CheckBox dans DataGridView En C#
dib_az
Messages postés7Date d'inscriptionsamedi 2 décembre 2000StatutMembreDernière intervention20 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 =
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
Vous n’avez pas trouvé la réponse que vous recherchez ?