La dernière ligne de ce code est censée remplir une ligne avec 3 colonnes dans un datagridview chaque fois que les variables "temperature" et "umidita" sont affichées dans les zones de texte correspondantes.Datagridview additionne les lignes non désirées
Ces données proviennent du port série et sont mises à jour toutes les x secondes.
private void SetText(string text)
{
string temperatura;
string umidita;
if (this.txtOutput.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText);
this.BeginInvoke(d, new object[] { text });
}
else
{
string f = text;
char firstChar = f[0];
if (firstChar == 'T')
{
temperatura = f;
temperatura = f.Replace("T", "");
textBox1.Text = temperatura;
}
else if (firstChar == 'U')
{
umidita = f;
umidita = f.Replace("U", "");
textBox2.Text = umidita;
}
dataGridView1.Rows.Add(new string[] { DateTime.Now.ToString("HH:mm:ss"), textBox1.Text, textBox2.Text });
}
}
Le code fonctionne, mais j'obtiens 3 lignes à temps rempli avec les mêmes données.
Je ne suis pas familier avec datagridview et je ne comprends pas pourquoi je reçois un tel comportement. Qu'est-ce que j'ai besoin de changer pour obtenir une ligne à la fois remplie de temps, "temperatura" et "umidita"?
Peut-être Rows.Add est exécuté 3 fois? pouvez-vous mettre un point d'arrêt et vérifier? –
Oui, il est exécuté 3 fois. Mais pourquoi? – FeliceM
Est-ce que 'SetText' est appelé plusieurs fois? Ce pourrait être l'entrée de données. –