Bonjour,
J'ai un probleme que je trouve bizarre... C'est peut etre moi qui deraille (le c# a eu ma peau) mais je n'arrive pas a faire quelque chose de tres simple :
Dans mon appli, je charge un User Control dans lequel existe une DataGridView. Cette DataGridView possede 2 colonnes bindee avec des donnees d'une BDD et j'ai rajoute une CheckBox colonne non bindee.
Lorsque le User Control se charge, je recupere les donnees dans ma DataGridView et je dois cocher la CheckBoxColumn si un lien existe dans ma BDD.
Or, les cases a cocher ne se cochenet pas et restent vides pas sur mon ecran alors que je sais grace au debugger que je passe bien dans ma boucle qui coche les Checkbox. La colonne n'est pas en read only et lorsque j'assaye de cocher les cases a partir d'un autre event (autre que le Load de mon User Control) comme DataGridView.MouseHover les cases se cochent bien.
Impossible de les cocher a partir du Load...
En gros voici le code :
Chargement du User Control
Methode qui coche les bonnes cases :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 private void usc_Conditions_Load(object sender, EventArgs e) { // Remplit les DataSets t_CONDITIONTableAdapter.Fill(dS_Condition.T_CONDITION); t_PROGRAMTableAdapter.FillByProgramID(dS_Program.T_PROGRAM, this.ProgramID); // Coche les bonne cases a cocher CocheCases(this.ProgramID); }
- Les DataSet types sont bien remplis.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public void CocheCases(decimal ProgramID) { foreach (DataGridViewRow MyRow in dgv_Conditions.Rows) { // Recupere l'ID de la Row en cours decimal ConditionID = Convert.ToDecimal(MyRow.Cells["CONDITION_ID"].Value.ToString()); // Si le lien existe, coche la case if (ProgramInformation.ExistsConditionInProgram(ConditionID, this.ProgramID)) { MyRow.Cells["SelectedRow"].Value = true; } } }
- Si je lance CocheCases dans un autre Event que Load, cela fonctionne tres bien.
- Si je teste la valeur d'une case a cocher qui vient d'etre cochee, cela m'affiche bien true.
- Si j'essaye de raffraichir l'affichage, les cases a cocher ne sont toujours pas cochees.
- Cela peut-il etre un probleme au niveau de l'affchage car la DataGridView est a l'interieur d'un User Control (formulaire) inclut lui meme dans une Form.
Voila j'ai essaye pas mal de choses, si quelqu'un voit pourquoi ces CheckBox ne veulent pas apparaitre cochees sur l'Event Load, il peut me sauver la vie.
Merci
Partager