bonjour, j'aimerais réactualiser mon datagridview depuis une classe.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
// dans une fonction
liste_hotes.Add(socket_client);
dg_les_hotes.Invoke(new DelegateDisplayDatagridview(actualise_dg_hotes), liste_hotes);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 !