Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de Performance du DataGridView

3 réponses
Avatar
FX
Bonjour,
J'utilise un composant DataGridView (CLR2) et je rencontre quelques soucis
de performances.
Voici le bout de code qui pose problème:
string valueStr = value.ToString();
DataGridViewRowCollection rows = dataGridView1.Rows;
foreach (DataGridViewRow dataGridViewRow in rows) {
dataGridViewRow.Cells[0].Value = valueStr;
}

La première colonne est du type : DataGridViewCheckBoxCell
Résulat: Plus de 15 sec pour éxécuter cette partie de code avec seulement
200 lignes dans mon composant.
Quelqu'un a-t-il une idée d'où pourrait provenir le problème ou améliorer la
sélection ?

Merci par avance.
Fx

3 réponses

Avatar
Paul Bacelar
Si vous voulez modifier les données, utilisez le DataSource de la
DataGridView.
--
Paul Bacelar
MVP VC++

"FX" wrote in message
news:43ce0178$0$17420$
Bonjour,
J'utilise un composant DataGridView (CLR2) et je rencontre quelques soucis
de performances.
Voici le bout de code qui pose problème:
string valueStr = value.ToString();
DataGridViewRowCollection rows = dataGridView1.Rows;
foreach (DataGridViewRow dataGridViewRow in rows) {
dataGridViewRow.Cells[0].Value = valueStr;
}

La première colonne est du type : DataGridViewCheckBoxCell
Résulat: Plus de 15 sec pour éxécuter cette partie de code avec seulement
200 lignes dans mon composant.
Quelqu'un a-t-il une idée d'où pourrait provenir le problème ou améliorer
la sélection ?

Merci par avance.
Fx




Avatar
Cyber Sinh
FX a écrit :
Bonjour,
J'utilise un composant DataGridView (CLR2) et je rencontre quelques soucis
de performances.
Voici le bout de code qui pose problème:
string valueStr = value.ToString();
DataGridViewRowCollection rows = dataGridView1.Rows;
foreach (DataGridViewRow dataGridViewRow in rows) {
dataGridViewRow.Cells[0].Value = valueStr;
}

La première colonne est du type : DataGridViewCheckBoxCell
Résulat: Plus de 15 sec pour éxécuter cette partie de code avec seulement
200 lignes dans mon composant.
Quelqu'un a-t-il une idée d'où pourrait provenir le problème ou améliorer la
sélection ?

Merci par avance.
Fx




Bonjour,
J'ai eu un problème comparable. Après analyse dynamique du code, il
semblerai que le problème vienne de la piètre performance de la
notification du changement de valeur de la propriété boolean lorsqu'elle
est bindée à une colonne de type DataGridViewCheckBoxCell. La seule
solution que j'ai trouvé est de désactiver la notification automatique
et de tout gérer à la main (par exemple, avec un ResetBindings() après
une mise à jour des données pour actualiser l'affichage de la grille).
Si quelqu'un a une autre idée...

Cyber Sinh
Avatar
Rafik
Bonjour,

je pense que la solution de Paul doit pouvoir résoudre ton problème. De
plus, si tu dois gérer un booléan, Cast la valeur.

Rafik

"Cyber Sinh" a écrit :

FX a écrit :
> Bonjour,
> J'utilise un composant DataGridView (CLR2) et je rencontre quelques soucis
> de performances.
> Voici le bout de code qui pose problème:
> string valueStr = value.ToString();
> DataGridViewRowCollection rows = dataGridView1.Rows;
> foreach (DataGridViewRow dataGridViewRow in rows) {
> dataGridViewRow.Cells[0].Value = valueStr;
> }
>
> La première colonne est du type : DataGridViewCheckBoxCell
> Résulat: Plus de 15 sec pour éxécuter cette partie de code avec seulement
> 200 lignes dans mon composant.
> Quelqu'un a-t-il une idée d'où pourrait provenir le problème ou améliorer la
> sélection ?
>
> Merci par avance.
> Fx
>
>
Bonjour,
J'ai eu un problème comparable. Après analyse dynamique du code, il
semblerai que le problème vienne de la piètre performance de la
notification du changement de valeur de la propriété boolean lorsqu'elle
est bindée à une colonne de type DataGridViewCheckBoxCell. La seule
solution que j'ai trouvé est de désactiver la notification automatique
et de tout gérer à la main (par exemple, avec un ResetBindings() après
une mise à jour des données pour actualiser l'affichage de la grille).
Si quelqu'un a une autre idée...

Cyber Sinh