bonjour, j'aimerais réactualiser mon datagridview depuis une classe.
mon_server = new ClServer { dg_les_hotes = dg_hotes, les_activites = lbl_activite, gs_readbuf = new byte[100] };
mon datagridview se nomme dg_les_hotes !
je le passe dans ma classe lors de l'a création de mon objet server.
du coté de ma classe, voici les bouts de code que j'utilise :
1 2 3 4
| public delegate void DelegateDisplayDatagridview(List<Socket> liste_hotes);
public List<Socket> liste_hotes = new List<Socket>();
public DataGridView dg_les_hotes;
public int nb_lignes_dg = 15; |
1 2 3
| // dans une fonction
liste_hotes.Add(socket_client);
dg_les_hotes.Invoke(new DelegateDisplayDatagridview(actualise_dg_hotes), liste_hotes); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public void actualise_dg_hotes(List<Socket> liste_hotes)
{
// on vide le dataGridView
dg_les_hotes.Rows.Clear();
// on recharge le dataGridView avec le contenu de la collection
int nb_hotes = liste_hotes.Count;
for (int i = 0; i < nb_hotes; i++)
{
string une_adresse_ip = ((IPEndPoint)((liste_hotes[i]).RemoteEndPoint)).Address.ToString();
dg_les_hotes.Rows.Add(une_adresse_ip);
}
dg_les_hotes.RowCount = nb_lignes_dg - nb_hotes;
} |
je suis sûr que cette fonctions marche en partie, notamment parce que le nombre de lignes est correct grâce à nb_lignes_dg !!
mais pourquoi rien n'apparait dans ma liste ??
en revanche je sais que ma variable une_adresse_ip est bien valorisée ! j'ai réussi à l'afficher dans un label !
Partager