IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Public listview deux forms qui se communique pas


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Par défaut Public listview deux forms qui se communique pas
    Bonjour tout le monde;

    j'ai deux forms

    - form1 avec une listview

    - et form2 avec bouton d'enregistrement des données dans la base de données

    tout marche bien sauf que je n'arrive pas à actualiser ma listview qui se trouve dans la form1 et qui reste ouverte pendant l'enregistrement donc je ne pense pas que new form va m'aider car elle va créer une autre instance que la form1 ouverte

    l'essentiel le tout marche bien sauf que je n'arrive pas à acceder à ma listview qui se trouve dans ma form1

    lors de l'enregistrement des données j'utilise ce code pour actualiser mes données dans la listview
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     sql = "SELECT * FROM myvalue";
                command = new SQLiteCommand(sql, connectdb);
                SQLiteDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    varlistview1 = new ListViewItem(reader["myvalue"].ToString());
                    listView.Items.Add(varlistview1);
                    listView.Refresh();
     
                }
    sauf que la listView n'est pas autorisé dans la form2 et donc je ne peux pas actualiser ma liste

    que dois je faire SVP

    merci d'avance

  2. #2
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    tu utilises la méthode ShowDialog() de ta Form2 pour l'affichier ?
    Si oui il suffit de recharger ta ListView dans ta Form1 juste après le retour de l'appel.

    Si t'es pas en modal tu dois pouvoir passer une référence de Form1 à Form2 avant son affichage, ainsi il aura accès à ta ListView (il faudra quand même que cette dernière soit définie en public).

  3. #3
    Membre très actif
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Par défaut
    J'ai un truc comme ça
    Nom : Sans titre-1.jpg
Affichages : 120
Taille : 62,6 Ko
    http://www.hostingpics.net/viewer.ph...Sanstitre1.jpg

    et j'utilise ShowDialog Oui
    comment faire pour recharger ma ListView dans ma Form1 alors que je suis entrain d'enregistrer depuis ma form2, listview methode ne s'affiche pas dans ma form2 :/

  4. #4
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Dans ta Form2, sur l'event du bouton tu fais ton INSERT en base puis tu renvoies DialogResult.OK ?
    Alors dans ta Form1, lors de l'appel à ShowDialog() tu peux faire un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // je pars du principe que ton handler d'event click sur le bouton "Add Value" s'appelle comac
    protected void btnAddValue_Click(object sender, EventArgs e) {
        Form2 formAdd = new Form2();
        if (formAdd.ShowDialog() == DialogResult.OK) {
            // le code de rechargement du ListView
        }
    }

  5. #5
    Membre très actif
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Par défaut
    non si tu vois dans l'image Form1 reste ouverte, si je met new form1 elle va pas appliquer les changements sur ma liste car je pointe sur une autre 'new' instance que la fenetre form1 qui est ouverte :/

    dans un autre forum ils m'ont conseille de ça:
    For easiest solution (make it public) check Modifiers property (in Design property group) inside WinForms designer. Set listView's Modifiers pseudo-property to "Internal" and it'll be visibile (of course assuming Form2's instance is accessible!)

    mais je ne vois pas comment oO

  6. #6
    Membre très actif
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Par défaut
    J'ai trouvé la solution, j'ai crée une fonction publique static de type ListView

    et j'ai mit la variable de cette fonction varfonction = listview1

    hope je partage ma liste sans probleme maintenant, merci pour l'aide

  7. #7
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Citation Envoyé par CLion Voir le message
    non si tu vois dans l'image Form1 reste ouverte, si je met new form1 elle va pas appliquer les changements sur ma liste car je pointe sur une autre 'new' instance que la fenetre form1 qui est ouverte :/
    Je comprends pas, à aucun moment je ne fais de new Form1() dans le code que je présente ...
    De plus je sais que ma proposition est fonctionnelle.

    Citation Envoyé par CLion Voir le message
    dans un autre forum ils m'ont conseille de ça:
    For easiest solution (make it public) check Modifiers property (in Design property group) inside WinForms designer. Set listView's Modifiers pseudo-property to "Internal" and it'll be visibile (of course assuming Form2's instance is accessible!)

    mais je ne vois pas comment oO
    internal est une portée, comme private (visible uniquement dans la classe), protected (visible dans la classe et ses dérivée) ou public (visible par tous) qui définit la visibilité au niveau de l'assembly.

    La solution static n'est pas la plus propre, mais si ça te convient tant mieux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. 2 machines sur le meme réseau qui ne communiquent pas
    Par potato dans le forum Protocoles
    Réponses: 2
    Dernier message: 15/12/2007, 21h09
  2. Communication entre deux fenetres qui n'ont pas de lien de parenté
    Par Invité dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/09/2006, 15h58
  3. [Maths] Un génie qui ne communique pas :)
    Par KiLVaiDeN dans le forum La taverne du Club : Humour et divers
    Réponses: 20
    Dernier message: 25/08/2006, 21h24
  4. Form qui ne reçoit pas des events
    Par eliek_9 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 26/07/2006, 15h45
  5. [VB.NET]Form qui ne répond pas
    Par Pocel dans le forum Windows Forms
    Réponses: 5
    Dernier message: 17/07/2006, 10h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo