Mise a jour automatique listbox via 2 formulaire [Résolu]

- - Dernière réponse :  MINDONGO - 28 janv. 2013 à 16:09
Bonjour,

Je voudrais savoir comment faire pour que lorsque j'ajoute une donnée d'un formulaire A,la listbox de mon formulaire B se mette a jour par rapport au donnée insérer dans mon formulaire A.

Merci !
Afficher la suite 

Votre réponse

17 réponses

Meilleure réponse
3
Merci
salut,
J’imagine que c’est n’est pas les données de la table entière !!!
Il suffit de créer une fonction LISTBOX sur laquelle tu place tes codes


        void LISTBOX()
{
//ta ligne de connexion
SqlDataReader dtr;
SqlCommand command;
//svp la table est juste une illustration 
command = new SqlCommand ("select * from Service ");
command.Connection = connString;
                dtr = command.ExecuteReader();
                while (dtr.Read())
listBox1.Items.Add(dtr["NomService "].ToString   
             dtr.Close();
}
private void FormB_Load(object sender, EventArgs e)
        {
           LISTBOX ();
        }

Merci MINDONGO 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de MINDONGO
0
Merci
salut,
est-ce que tu utilise un sgbd?
Commenter la réponse de MINDONGO
Messages postés
224
Date d'inscription
vendredi 26 novembre 2010
Dernière intervention
11 juin 2013
0
Merci
Bonjour,

Si ton form A est le parent de ton form B, il suffit d'envoyer les informations à ton form B via un fonction publique. Ex:
public partial class FormA : Form
{
    //initialisation
    FormB f2 = new FormB();
    f2.Show();

    private void AjoutDonnee(Object o)
    {
       //Ajout de o dans la liste du Form A
       f2.MiseAJourDonnee(o); //fonction qui traite les données dans form B
    }
}

Si tu veux de l'aide de façon plus précise, poste ta fonction d'ajout de ton form A et détaille le traitement que tu veux faire sur ton Form B
Commenter la réponse de cs_L0ci
0
Merci
@MINDONGO : Oui,je passe par une sgbd qui m'insere les donnéees de mon formulaire A(NomService).
Je voudrais que la donnée(NomService) s'affiche directement dans ma listbox sans que j'ai a fermer le formulaire B de ma listbox pour qu'elle s'affiche.

@L0ci :

Formulaire A :

//Insertion des données de mon formulaire

SqlCommand command = new SqlCommand("INSERT INTO MATABLE")

//Mise a jour de ma liste qui ne fonctionne pas
FormB f2 = new FormB();
f2.listBox1.Refresh();

Formulaire B :
// Données de ma listbox
SqlDataAdapter custAdapter = new SqlDataAdapter("SELECT * FROM MATABLE", connString);
DataSet datas = new DataSet();
custAdapter.Fill(datas, "DONNES1");
custAdapter.Fill(datas, "DONNES2");

foreach (DataRow row in datas.Tables[0].Rows)
{
if (row["DONNES1"].ToString() != "")
{
listBox1.Items.Add(row["DONNES2"].ToString());
}

}
Commenter la réponse de Damiens29
Messages postés
224
Date d'inscription
vendredi 26 novembre 2010
Dernière intervention
11 juin 2013
0
Merci
Bonjour,

Est ce que c'est normal que tu (re)instancies ton FormB juste avant le refresh? Si ton formB est déjà ouvert il faut que tu accèdes à l'instance en cours de ton form.
Commenter la réponse de cs_L0ci
0
Merci
Je l'instancie uniquement la premiére fois au niveau de l'initialisation comme tu l'as fait plus haut.
Commenter la réponse de Damiens29
Messages postés
224
Date d'inscription
vendredi 26 novembre 2010
Dernière intervention
11 juin 2013
0
Merci
J'ai trouvé ce post la il y a peut être la solution à ton problème.
Sinon, as tu essayé d'executer le code de ton formB en pas à pas? Si oui, est-ce que la fonction est bien appelée et est ce que la listbox est bien remplie?
Commenter la réponse de cs_L0ci
0
Merci
Oui,tout se remplit bien.Il n'y a pas de probléme pour ca.C'est juste le fait que je doit fermer la fenêtre de mon formB pour voir apparaitre la donnée que j'ai inséré de mon formA ce qui n'est vraiment pas terrible.

Je pourrais creer un bouton d'actualisation sur mon formB sinon mais c'est vraiment pas ce que je veux.
Je ne trouve pas la référence listbox.databind() et l'update ne fait rien non plus que je l'appel de mon formA.

Doit avoir un moyen d'actualiser tous ce ptit machin quand meme bon sang de bois !
Commenter la réponse de Damiens29
Messages postés
12366
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 décembre 2018
0
Merci
Bonjour j'ai déjà fait un truc dans le style, mais je n'ai pas le code sous la main.
Je m'étais servit d'une List<T> que j'envoyais au form B en référence et ensuite j'avais mis sur chaque formulaire un databindingsource (j'ai créé un tuto là dessus et va savoir pourquoi sur de PC je ne peux pas y acceder).

Ca ce mets à jour plus ou moins tout seul et au pire tu as juste à creer une méthode de rafraichisement du formulaire B que tu appelles dans l'évenement CurrentChanged du databindingsource de A.


Whismeril
Commenter la réponse de Whismeril
Messages postés
12366
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 décembre 2018
0
Merci
Tuto databinding source


Whismeril
Commenter la réponse de Whismeril
0
Merci
@Whismeril :Ma listbox n'es pas bindé, j'utilise une requete select pour afficher mes infos et une requete delete pour les supprimer donc je ne pense pas pouvoir utiliser le databinding source où il faudrait que je m'y penche réellement dans ces cas là et revoir tous mon formulaire.


@MINDIGO :
Même en créant une fonction,la liste ne se met pas a jour automatiquement.Il faut encore que je referme mon formulaire B pour voir apparaitre mon élément que je viens de creer.
Commenter la réponse de Damiens29
0
Merci
salut,
est-ce que tu le place dans ton formulaire B
mes codes?
il faut le mettre là, car j'ai essayé avec ça chez moi quelque choses de pareille et çà marche


une fonction créer dans formulaire B
Commenter la réponse de MINDONGO
0
Merci
Ah,j'ai aussi oublié de préciser que mon FormB(affichage listbox) ouvre mon FormA(Ajout de donné) via un bouton.Du coup,il reste ouvert en fond et c'est surement ca qui pose probléme...

@MINDONGO : Oui,ta fonction marche très bien mais c'est le rafraichissement de la listbox lors de l'ajout qui ne se fait toujours pas, c'est ca mon probléme.
Commenter la réponse de Damiens29
0
Merci
Bon ben,je viens de trouver un moyen pas terrible mais qui fonctionne.
Je lance ma fonction sur l'événement click de mon formulaire B et du coup,Il vide et reremplit ma listbox avec les éléments de ma table service.
Commenter la réponse de Damiens29
0
Merci
salut,
@Damiens29, donc cava maintenant?
Commenter la réponse de MINDONGO
0
Merci
Oui,je te remercie :

private void F_Service_Click(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'gestionRDDataSet1.T_Services' table. You can move, or remove it, as needed.
        }


J'ai juste créé un évenement click qui pointe sur F_Service_Load() et qui qui rafraichi mon formulaireB,ca met donc a jour ma listbox.
C'est béte mais ca fonctionne.
J'accepte ta réponse plus haut et je te remercie encore pour ton aide.
Commenter la réponse de Damiens29
0
Merci
c'est à vs que je remercie aussi

int mindongo
Commenter la réponse de MINDONGO

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.