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

Windows Forms Discussion :

Méthode non utilisé


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Nanos
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 109
    Par défaut Méthode non utilisé
    Salut à tous,

    Je programme en C# une navigateur web sous le nom de Protom Navigator ... Enfin bref comme je poste dur ce forum c'est que j'ai un problème ^^.

    Voici mon code :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    //Intilialisation navigateur wb par onglet actif
            private WebBrowser GetSelectedWebBrowser()
            {
                foreach (Control ctl in tabControl1.SelectedTab.Controls)
                {
                    WebBrowser wb = ctl as WebBrowser;
                    if (wb != null)
                        return wb;
                }
                return null;
            }
     
            //Initialisation composant wb
            public void wb()
            {
                WebBrowser wb = GetSelectedWebBrowser();
                wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);
            }
     
            //Evenement lors de la fin du chargement de la page
            private void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                WebBrowser wb = GetSelectedWebBrowser();
                string url = Convert.ToString(wb.Url);
                if (url.StartsWith("https://"))
                {
                    textBox2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
                }
                if (url.StartsWith("ftp://") | ((url.EndsWith(".rar"))) && ((url.EndsWith(".zip"))))
                {
                    textBox2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
                }
     
                string title = "Historique";
                TabPage myTabPage = new TabPage(title);
                try
                {
                    RichTextBox myRT = new RichTextBox();
                    myTabPage.Controls.Add(myRT);
                    myRT.Dock = DockStyle.Fill;
                    myRT.ReadOnly = true;
                    string dateetheure = Convert.ToString(DateTime.Now);
                    myRT.LoadFile("Historique.rtf");
                    string text = myRT.Text;
                    string urlh = Convert.ToString(wb.Url);
                    myRT.Text = "\n" + dateetheure + "  -  " + urlh + "  :  " + wb.DocumentTitle + text;
                    myRT.SaveFile("Historique.rtf");
     
     
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    Clipboard.SetData(DataFormats.Text, ex.Message);
                }
     
                textBox2.Text = Convert.ToString(wb.Url);
     
                RichTextBox rtf = new RichTextBox();
                string rt = Convert.ToString(rtf);
                rtf.Text = rt + " \n " + wb.Url;
            }
    Ce que je veut c'est que quand le composé wb termine de charger la page elle exécute la class wb_DocumentCompleted mais quand j'exécute mon programme, il ne se passe absolument rien de ce qui il y a dans la class : wb_DocumentCompleted ...

    Pouvez-vous m'aidez SVP ?

    Merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Hades Shion Voir le message
    elle exécute la class wb_DocumentCompleted
    C'est une méthode, pas une classe...

    à quoi tu vois que ça n'exécute rien ? tu as mis un breakpoint ?

    Et quand appelles-tu la méthode wb ? A mon avis tu devrais t'abonner à l'évènement au moment où tu crées le WebBrowser...

    D'autre part, pour savoir quel WebBrowser a levé l'évènement, utilise plutôt le paramètre sender, il sert à ça. Il faut juste que tu le cast en WebBrowser

  3. #3
    Membre confirmé Avatar de Nanos
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 109
    Par défaut
    Déjà merci de m'avoir répondu aussi vite

    Citation Envoyé par tomlev Voir le message
    à quoi tu vois que ça n'exécute rien ? tu as mis un breakpoint ?

    je n'ai pas mis de breakpoint ... mais sa n'éxécute rien car par exemple quand je vais sur ce lien la : https://www.paypal.com/dojo-04/ qui est en https, ma textbox ne devient pas verte et pareil quand je veut afficher l' historique.


    Citation Envoyé par tomlev Voir le message
    Et quand appelles-tu la méthode wb ? A mon avis tu devrais t'abonner à l'évènement au moment où tu crées le WebBrowser...

    Comprend pas trop la question ...


    Citation Envoyé par tomlev Voir le message
    D'autre part, pour savoir quel WebBrowser a levé l'évènement, utilise plutôt le paramètre sender, il sert à ça. Il faut juste que tu le cast en WebBrowser

    Comprend pas aussi

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    aie, si tu comprends rien de ce que je dis ça va pas être évident

    quand appelles-tu la méthode wb ?
    Ca tu comprends quand même ? y a-t-il un endroit dans ton code où tu fais appel à cette méthode ? comme ça :

    Pour le vérifier, place le curseur sur le nom de la méthode et fait clic droit -> rechercher toutes les références

    A mon avis tu devrais t'abonner à l'évènement au moment où tu crées le WebBrowser...
    Quand je parle de "s'abonner à l'évènement", ça veut dire lier l'évènement à la méthode qui doit être exécutée quand l'évènement se produit, soit cette instruction là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);
    D'autre part, pour savoir quel WebBrowser a levé l'évènement, utilise plutôt le paramètre sender, il sert à ça. Il faut juste que tu le cast en WebBrowser
    Ce que je veux dire, c'est que c'est la même méthode wb_DocumentCompleted qui sera appelée pour tous les WebBrowser, donc il faut que tu identifies lequel a déclenché l'évènement DocumentCompleted. Actuellement tu supposes que c'est celui qui est actuellement actif (dans l'onglet sélectionné), mais ce n'est pas forcément le cas. Il faut donc remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebBrowser wb = GetSelectedWebBrowser();
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebBrowser wb = sender as WebBrowser;

  5. #5
    Membre confirmé Avatar de Nanos
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 109
    Par défaut
    Citation Envoyé par tomlev Voir le message
    aie, si tu comprends rien de ce que je dis ça va pas être évident


    Ca tu comprends quand même ? y a-t-il un endroit dans ton code où tu fais appel à cette méthode ? comme ça :

    Pour le vérifier, place le curseur sur le nom de la méthode et fait clic droit -> rechercher toutes les références
    Euh non ce que je veut faire c'est exécutez cette méthode dès le démarrage du programme.

    Citation Envoyé par tomlev Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A mon avis tu devrais t'abonner à l'évènement au moment où tu crées le WebBrowser...
    Quand je parle de "s'abonner à l'évènement", ça veut dire lier l'évènement à la méthode qui doit être exécutée quand l'évènement se produit, soit cette instruction là :[/code]
    Donc tu veut dire que je devrait exécuter ma méthode juste après le
    Citation Envoyé par tomlev Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);

    Ce que je veux dire, c'est que c'est la même méthode wb_DocumentCompleted qui sera appelée pour tous les WebBrowser, donc il faut que tu identifies lequel a déclenché l'évènement DocumentCompleted. Actuellement tu supposes que c'est celui qui est actuellement actif (dans l'onglet sélectionné), mais ce n'est pas forcément le cas. Il faut donc remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebBrowser wb = GetSelectedWebBrowser();
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebBrowser wb = sender as WebBrowser;
    Ok
    et dans ce cas, je ferais comment pour que quand la page d'un WebBrowser actif soit terminé, je fait quoi pour que ma méthode wb_DocumentCompleted soit appelée ?

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Hades Shion Voir le message
    Donc tu veut dire que je devrait exécuter ma méthode juste après le
    Oui



    Citation Envoyé par Hades Shion Voir le message
    et dans ce cas, je ferais comment pour que quand la page d'un WebBrowser actif soit terminé, je fait quoi pour que ma méthode wb_DocumentCompleted soit appelée ?
    Ben rien de plus, si ta méthode wb() a été appelée la méthode est déjà liée à l'évènement

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/04/2015, 19h12
  2. méthode non déclarée *?*
    Par nunurs83 dans le forum C++
    Réponses: 10
    Dernier message: 10/11/2006, 11h30
  3. Méthodes non accessibles
    Par ez3kiel dans le forum Langage
    Réponses: 1
    Dernier message: 28/10/2006, 15h16
  4. [Méthode] Non traitement de données
    Par GLDavid dans le forum Langage
    Réponses: 11
    Dernier message: 11/08/2006, 18h27
  5. fermer un Access non utilisé
    Par GAGNON dans le forum Access
    Réponses: 2
    Dernier message: 17/10/2005, 14h08

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