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 :

Obtenir l'onglet actif


Sujet :

Windows Forms

  1. #1
    Membre du Club 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
    Points : 50
    Points
    50
    Par défaut Obtenir l'onglet actif
    Salut à tous ...

    J'ai un WebKitBrowser et un tabControl mais le problème c'est que cette ligne ne fait pas entièrement ce qu'elle est sensé faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tabControl1.SelectedTab.Text = Convert.ToString(wb.DocumentTitle);
    Quand je compile, il n'y a que la première tabPage qui change de nom tandis que wb correspond au moteur de rendu dans une tabpage actif :

    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
    public Form1()
    {
          InitializeComponent();
          WebKit.WebKitBrowser wb = GetSelectedWebBrowser();
          wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);
    }
     
    private WebKit.WebKitBrowser GetSelectedWebBrowser()
    {
          foreach (Control ctl in tabControl1.SelectedTab.Controls)
          {
              WebKit.WebKitBrowser wb = ctl as WebKit.WebKitBrowser;
               if (wb != null)
                     return wb;
          }
          return null;
    }
     
    private void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
          tabControl1.SelectedTab.Text = Convert.ToString(wb.DocumentTitle);
    }
    Comment faire pour que sa soit toutes les TabPages qui prennent le nom de la page qui est chargé dans le moteur de rendu.

    Le webkitbrowser fonctionne comme le webbrowser => j'avais le même problème quand j'utilisais celui déjà fournis par .NET

    Pouvez-vous m'aider 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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Tu ne t'abonnes à l'évènement DocumentCompleted que pour le premier browser, donc il n'est pas géré pour les autres browsers. Il faut s'abonner à l'évènement au moment où tu crées le browser, et non à l'initialisation de la Form.

    D'autre part, dans ton handler wb_DocumentCompleted, tu devrais te baser sur le sender, car wb pointe toujours sur le le browser qui déclenche l'évènement n'est pas forcément celui qui est actuellement sélectionné. En plus je pense que le code que tu as posté n'est pas complet, car la variable wb ne semble pas déclarée dans le contexte de ta méthode wb_DocumentCompleted...

    Perso je ferais plutôt quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
          WebKit.WebKitBrowser wb = sender as WebKit.WebKitBrowser;
          if (wb == null)
              return;
          TabPage tabPage = wb.Parent as TabPage;
          if (tabPage == null)
              return;
          tabPage.Text = wb.DocumentTitle;
    }
    Sinon, par curiosité : il fonctionne bien ce WebKitBrowser ? J'avais testé il y a quelques mois, ça semblait pas génial en terme de performance... ça s'est amélioré depuis ?

  3. #3
    Membre du Club 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
    Points : 50
    Points
    50
    Par défaut
    salut

    J'ai mit exactement ton code dans le wb_DocumentCompleted et sa ne change rien ...
    Par contre c'est vrais que mon wb_DocumentCompleted n'est pas abonné car l'historique ne fonctionne pas sur les autres tabPages ...

    Voici mon code sur tous les évenements :

    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Text;
    using System.Windows.Forms;
    using System.Net;
    using System.IO;
     
    namespace Protom_Navigator
    {
        public partial class Form1 : Form
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
     
            public Form1()
            {
                InitializeComponent();
                WebKit.WebKitBrowser wb = GetSelectedWebBrowser();
                wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);
                wb.Navigating += new WebBrowserNavigatingEventHandler(wb_Navigating);
            }
     
            //Quand page du navigateur actif a fini de charger
            private void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                button3.Click +=new EventHandler(button3_Click);
                button3.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("button3.BackgroundImage")));
                WebKit.WebKitBrowser 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);
                tabControl1.SelectedTab.Text = Convert.ToString(wb.DocumentTitle);
                button1.Enabled = wb.CanGoBack;
                button2.Enabled = wb.CanGoForward;
                button3.BackgroundImage = imageList2.Images[1];
                button3.Click += new EventHandler(button3_Click);
            }
     
            //Quand page du navigateur actif charge
            private void wb_Navigating(object sender, WebBrowserNavigatingEventArgs e)
            {
                WebKit.WebKitBrowser wb = GetSelectedWebBrowser();
                tabControl1.SelectedTab.Text = Convert.ToString("Chargement ...");
                button1.Enabled = wb.CanGoBack;
                button2.Enabled = wb.CanGoForward;
                button3.BackgroundImage = imageList2.Images[0];
                button3.Click += new EventHandler(button3_Click1);
            }
     
            //Quand changement d'onglet
            private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
            {
                WebKit.WebKitBrowser wb = GetSelectedWebBrowser();
                button1.Enabled = wb.CanGoBack;
                button2.Enabled = wb.CanGoForward;
            }
     
            //Permet de régler le blem avec els onglet et le moteur
            private WebKit.WebKitBrowser GetSelectedWebBrowser()
            {
                foreach (Control ctl in tabControl1.SelectedTab.Controls)
                {
                    WebKit.WebKitBrowser wb = ctl as WebKit.WebKitBrowser;
                    if (wb != null)
                        return wb;
                }
                return null;
            }
        }
    }
    Et pour ta question : il marche bien mais il faut faire tout sois même (les téléchargements, les page d'erreur, etc...). Il est à 99% pour le test acid3 : c'était plus bas avant ?

    EDIT : Sa fait rapport à un autre sujet mais quand tu as utilisé le webkitbrowser : as tu utiliser une progressBar pour afficher la progression de la page ou est-ce que tu sait comment récupérer le pourcentage de la progression de la page en un type de variable (ex : byte) ?

  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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Hades Shion Voir le message
    J'ai mit exactement ton code dans le wb_DocumentCompleted et sa ne change rien ...
    Par contre c'est vrais que mon wb_DocumentCompleted n'est pas abonné
    Ben cherche pas plus loin, c'est pour ça... il faut s'abonner à l'évènement pour tous les contrôles

    Citation Envoyé par Hades Shion Voir le message
    Et pour ta question : il marche bien mais il faut faire tout sois même (les téléchargements, les page d'erreur, etc...). Il est à 99% pour le test acid3 : c'était plus bas avant ?
    Aucune idée, ce n'est pas ce que je voulais tester

    Citation Envoyé par Hades Shion Voir le message
    EDIT : Sa fait rapport à un autre sujet mais quand tu as utilisé le webkitbrowser : as tu utiliser une progressBar pour afficher la progression de la page ou est-ce que tu sait comment récupérer le pourcentage de la progression de la page en un type de variable (ex : byte) ?
    Pas essayé...

  5. #5
    Membre du Club 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
    Points : 50
    Points
    50
    Par défaut
    Je en comprend pas mon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private WebKit.WebKitBrowser GetSelectedWebBrowser()
            {
                foreach (Control ctl in tabControl1.SelectedTab.Controls)
                {
                    WebKit.WebKitBrowser wb = ctl as WebKit.WebKitBrowser;
                    if (wb != null)
                        return wb;
                }
                return null;
            }
    et mon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WebKit.WebKitBrowser wb = GetSelectedWebBrowser();
    sont sensés de s'occuper de tout les Browser dans les TabPage tandis que sur les autres onglet celà ne marche pas ? Et aussi ton code ne marche pas ... Ça ne change rien ...

  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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Hades Shion Voir le message
    sont sensés de s'occuper de tout les Browser dans les TabPage
    Ben non, ça ne le fait que pour le browser qui est dans l'onglet actif... Il faudrait boucler sur tous les onglets, récupérer le browser, et s'abonner à son évènement DocumentCompleted pour chaque browser

  7. #7
    Membre du Club 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
    Points : 50
    Points
    50
    Par défaut
    dans ce cas : comment faire ?

  8. #8
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    foreach (TabPage page in tabControl1.TabPages)
    {
        foreach(Control ctl in page.Controls)
        {
            WebKit.WebKitBrowser wb = ctl as WebKit.WebKitBrowser;
            if (wb != null)
            {
                wb.DocumentCompleted += wb_DocumentCompleted;
                break;
            }
        }
    }

  9. #9
    Membre du Club 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
    Points : 50
    Points
    50
    Par défaut
    désolé sa marche toujours pas :

    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Text;
    using System.Windows.Forms;
    using System.Net;
    using System.IO;
     
    namespace Protom_Navigator
    {
        public partial class Form1 : Form
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
     
            public Form1()
            {
                InitializeComponent();
                foreach (TabPage page in tabControl1.TabPages)
                {
                    foreach (Control ctl in page.Controls)
                    {
                        WebKit.WebKitBrowser wb = ctl as WebKit.WebKitBrowser;
                        if (wb != null)
                        {
                            wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);
                            wb.Navigating += new WebBrowserNavigatingEventHandler(wb_Navigating);
                            break;
                        }
                    }
                }
            }
     
            //Quand page du navigateur actif a fini de charger
            private void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                button3.Click +=new EventHandler(button3_Click);
                button3.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("button3.BackgroundImage")));
                WebKit.WebKitBrowser 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);
                tabControl1.SelectedTab.Text = Convert.ToString(wb.DocumentTitle);
                button1.Enabled = wb.CanGoBack;
                button2.Enabled = wb.CanGoForward;
                button3.BackgroundImage = imageList2.Images[1];
                button3.Click += new EventHandler(button3_Click);
            }
     
            //Quand page du navigateur actif charge
            private void wb_Navigating(object sender, WebBrowserNavigatingEventArgs e)
            {
                WebKit.WebKitBrowser wb = GetSelectedWebBrowser();
                tabControl1.SelectedTab.Text = Convert.ToString("Chargement ...");
                button1.Enabled = wb.CanGoBack;
                button2.Enabled = wb.CanGoForward;
                button3.BackgroundImage = imageList2.Images[0];
                button3.Click += new EventHandler(button3_Click1);
            }
     
            //Quand changement d'onglet
            private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
            {
                WebKit.WebKitBrowser wb = GetSelectedWebBrowser();
                button1.Enabled = wb.CanGoBack;
                button2.Enabled = wb.CanGoForward;
            }
     
            //Permet de régler le blem avec els onglet et le moteur
            private WebKit.WebKitBrowser GetSelectedWebBrowser()
            {
                foreach (Control ctl in tabControl1.SelectedTab.Controls)
                {
                    WebKit.WebKitBrowser wb = ctl as WebKit.WebKitBrowser;
                    if (wb != null)
                        return wb;
                }
                return null;
            }
        }
    }
    EDIT : Voici un screen :


  10. #10
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Ah ok, mais au début il n'y a qu'un seul onglet alors ? donc la boucle ne sert à rien. C'est au moment où tu crées le webbrowser qu'il faut s'abonner à l'évènement

  11. #11
    Membre du Club 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
    Points : 50
    Points
    50
    Par défaut
    le webbrowser du designer ou le webbrowser lors de la création d'un nouvel onglet par le code ?

  12. #12
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    ben les 2...

  13. #13
    Membre du Club 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
    Points : 50
    Points
    50
    Par défaut
    sa marche mais je me retrouve avec une exception :
    La référence d'objet n'est pas définis à une instance d'un objet.
    Voici le 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
            //Nouvel onglet
            public void nouvelOnglet()
            {
                try
                {
                    foreach (TabPage page in tabControl1.TabPages)
                    {
                        foreach (Control ctl in page.Controls)
                        {
                            WebKit.WebKitBrowser wb = ctl as WebKit.WebKitBrowser;
                            if (wb != null)
                            {
                                TabPage tb = new TabPage();
                                tabControl1.TabPages.Add(tb);
                                tabControl1.SelectedTab = tb;
                                tb.Controls.Add(wb);
                                wb.Dock = DockStyle.Fill;
                                RichTextBox rtb = new RichTextBox();
                                rtb.LoadFile("Page d'accueil nouvel onglet.rtf");
                                wb.Navigate(rtb.Text);
                                break;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
    Après l'exception, il n'y a que l'onglet qui vient d'être créer qui marche : dingue . Les autres provoquent l'exception quand je clique sur eux et il n'y a plus rien dans l'onglet : vide

  14. #14
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Euh, je comprends pas trop le sens de ta fonction... Là, pour chaque onglet existant, tu prends son WebBrowser et tu l'ajoutes à un nouvel onglet

    Si tu veux créer un nouvel onglet, à quoi ça sert de boucler sur les onglets existants ? Crée juste un nouvel onglet dans lequel tu crées un nouveau WebBrowser... Et à quoi sert la RichTextBox en fait ?

  15. #15
    Membre du Club 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
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Euh, je comprends pas trop le sens de ta fonction... Là, pour chaque onglet existant, tu prends son WebBrowser et tu l'ajoutes à un nouvel onglet
    Oui je me suis trompé, c'est corrigé

    Citation Envoyé par tomlev Voir le message
    Et à quoi sert la RichTextBox en fait ?
    Elle sert à charger un fichier qui détermine la page à charger lors de la création d'un nouvel onglet et permet au webbrowser de naviguer vers la page ... C'est un moyen que j'ai trouver pour que l'utilisateur choisis sa page qui veut charger lors de la création d'un nouvel onglet et puisque le fichier ne se réinitialise pas quand on quitte le programme et bein je peut le réutiliser pour les sessions qui suivent. Mais après je vais me mettre aux bases de données : sa va être plus compliqué mais sa éviteras les exceptions quand le fichier.rtf est modifié en dehors du programme et qu'il y est 1 ligne pour chaque fichier.rtf (il y en as 5 dans le programme) à pars pour l'historique où c'est plus.

    Et sinon sa ne marche toujours pas, en plus de cela il y a un exception pour fermer tout les onglets quand ils sont plus de un et pour fermer les autres onglets quand ils sont plus de un. Voici le code actuel :

    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Text;
    using System.Windows.Forms;
    using System.Net;
    using System.IO;
    using System.Data.SQLite;
     
    namespace Protom_Navigator
    {
        public partial class Form1 : Form
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
     
            public Form1()
            {
                InitializeComponent();
                foreach (TabPage page in tabControl1.TabPages)
                {
                    foreach (Control ctl in page.Controls)
                    {
                        WebKit.WebKitBrowser wb = ctl as WebKit.WebKitBrowser;
                        if (wb != null)
                        {
                            wb.DocumentCompleted += wb_DocumentCompleted;
                            wb.Navigating += new WebBrowserNavigatingEventHandler(wb_Navigating);
                            break;
                        }
                    }
                }
            }
     
            //Quand page du navigateur actif a fini de charger
            private void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                try
                {
                    WebKit.WebKitBrowser wb = GetSelectedWebBrowser();
                    button3.Click += new EventHandler(button3_Click);
                    button3.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("button3.BackgroundImage")));
                    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);
                    RichTextBox rtb = new RichTextBox();
                    string dateetheure = Convert.ToString(DateTime.Now);
                    rtb.LoadFile("Historique.rtf");
                    string text = rtb.Text;
                    string urlh = Convert.ToString(wb.Url);
                    rtb.Text = "\n" + dateetheure + "  -  " + urlh + "  :  " + wb.DocumentTitle + text;
                    rtb.SaveFile("Historique.rtf");
                    textBox2.Text = Convert.ToString(wb.Url);
                    tabControl1.SelectedTab.Text = Convert.ToString(wb.DocumentTitle);
                    button1.Enabled = wb.CanGoBack;
                    button2.Enabled = wb.CanGoForward;
                    button3.BackgroundImage = imageList2.Images[1];
                    button3.Click += new EventHandler(button3_Click);       
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }           
            }
     
            //Quand page du navigateur actif charge
            private void wb_Navigating(object sender, WebBrowserNavigatingEventArgs e)
            {
                try
                {
                    WebKit.WebKitBrowser wb = GetSelectedWebBrowser();
                    tabControl1.SelectedTab.Text = Convert.ToString("Chargement ...");
                    button1.Enabled = wb.CanGoBack;
                    button2.Enabled = wb.CanGoForward;
                    button3.BackgroundImage = imageList2.Images[0];
                    button3.Click += new EventHandler(button3_Click1);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
     
            //Quand changement d'onglet
            private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
            {
                try
                {
                    WebKit.WebKitBrowser wb = GetSelectedWebBrowser();
                    button1.Enabled = wb.CanGoBack;
                    button2.Enabled = wb.CanGoForward;
     
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
     
            //Permet de régler le blem avec els onglet et le moteur
            private WebKit.WebKitBrowser GetSelectedWebBrowser()
            {
                 foreach (Control ctl in tabControl1.SelectedTab.Controls)
                 {
                     WebKit.WebKitBrowser wb = ctl as WebKit.WebKitBrowser;
                     if (wb != null)
                         return wb;
                 }
                 return null;
            }
     
            //Barre de statut
            public void barreDeStatut()
            {
     
            }
     
            //Nouvel onglet
            public void nouvelOnglet()
            {
                try
                {
                    WebKit.WebKitBrowser wb = new WebKit.WebKitBrowser();
                    TabPage tb = new TabPage();
                    tabControl1.TabPages.Add(tb);
                    tb.Controls.Add(wb);
                    wb.Dock = DockStyle.Fill;
                    RichTextBox rtb = new RichTextBox();
                    rtb.LoadFile("Page d'accueil nouvel onglet.rtf");
                    wb.Navigate(rtb.Text);
                    tabControl1.SelectedTab = tb;       
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }           
            }
     
            //Fermer onglet
            public void fermerOnglet()
            {
                try
                {
                    if (tabControl1.TabCount == 1)
                    {
                        RichTextBox rtb = new RichTextBox();
                        WebKit.WebKitBrowser wb = GetSelectedWebBrowser();
                        rtb.LoadFile("Page d'accueil nouvel onglet.rtf");
                        wb.Navigate(rtb.Text);
                    }
                    else
                    {
                        tabControl1.TabPages.Remove(tabControl1.SelectedTab);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }         
            }
     
            //Fermer tout les onglets
            public void fermerToutLesOnglets()
            {
                try
                {
                    if (tabControl1.TabCount > 1)
                    {
                        tabControl1.TabPages.Clear();
                        TabPage tb = new TabPage();
                        tabControl1.TabPages.Add(tb);
                        WebKit.WebKitBrowser wb = new WebKit.WebKitBrowser();
                        tb.Controls.Add(wb);
                        wb.Dock = DockStyle.Fill;
                        RichTextBox rtb = new RichTextBox();
                        rtb.LoadFile("Page d'accueil nouvel onglet.rtf");
                        wb.Navigate(rtb.Text);
                        tabControl1.SelectedTab = tb;
                    }
                    else
                    {
                        RichTextBox rtb = new RichTextBox();
                        WebKit.WebKitBrowser wb = GetSelectedWebBrowser();
                        rtb.LoadFile("Page d'accueil nouvel onglet.rtf");
                        wb.Navigate(rtb.Text);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
     
            //Fermer les autres onglets
            public void fermerAutresOnglets()
            {
                try
                {
                    if (tabControl1.TabCount > 1)
                    {
                        WebKit.WebKitBrowser wb = GetSelectedWebBrowser();
                        string url = Convert.ToString(wb.Url);
                        tabControl1.TabPages.Clear();
                        TabPage tb = new TabPage();
                        tabControl1.TabPages.Add(tb);
                        WebKit.WebKitBrowser WKB = new WebKit.WebKitBrowser();
                        tb.Controls.Add(WKB);
                        WKB.Dock = DockStyle.Fill;
                        WKB.Navigate(url);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
     
            //Dupliquer onglet
            public void dupliquerOnglet()
            {
                try
                {
                    WebKit.WebKitBrowser wb = GetSelectedWebBrowser();
                    string name = Convert.ToString(wb.DocumentTitle);
                    string dupliquer = Convert.ToString(wb.Url);
                    TabPage tb = new TabPage(name);
                    tabControl1.TabPages.Add(tb);
                    WebKit.WebKitBrowser WKB = new WebKit.WebKitBrowser();
                    tb.Controls.Add(WKB);
                    WKB.Dock = DockStyle.Fill;
                    WKB.Navigate(dupliquer);
                    tabControl1.SelectedTab = tb;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
    }

  16. #16
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Tu tiens toujours pas compte de ce que je t'ai dit

    - Dans le constructeur, la boucle ne sert à rien vu qu'il n'y a qu'un seul onglet à ce stade
    - Tu utilises toujours GetSelectedWebBrowser dans les handlers des évènements du WebBrowser, alors qu'il faut utiliser le paramètre sender. L'onglet qui déclenche l'évènement n'est pas forcément celui qui est sélectionné...
    - Tu ne t'abonnes toujours pas à DocumentCompleted dans la méthode nouvelOnglet

    D'autre part, le RichTextBox, je ne comprends pas pourquoi tu le crées dans wb_DocumentCompleted... ce serait pas plus logique de le créer dans nouvelOnglet ?

  17. #17
    Membre du Club 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
    Points : 50
    Points
    50
    Par défaut
    c'est bon sa marche, maintenant la même exception provoqués par l'évenement qui est en rouge pour la méthode fermer tout les onglets et fermer les autres onglets :

    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Text;
    using System.Windows.Forms;
    using System.Net;
    using System.IO;
    
    namespace Protom_Navigator
    {
        public partial class Form1 : Form
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
    
            public Form1()
            {
                InitializeComponent();
                WebKit.WebKitBrowser wb = GetSelectedWebBrowser();
                wb.DocumentCompleted += wb_DocumentCompleted;
                wb.Navigating += new WebBrowserNavigatingEventHandler(wb_Navigating);
            }
    
            //Quand page du navigateur actif a fini de charger
            private void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                try
                {
                    WebKit.WebKitBrowser wb = sender as WebKit.WebKitBrowser;
                    if (wb == null)
                        return;
                    TabPage tabPage = wb.Parent as TabPage;
                    if (tabPage == null)
                        return;
                    button3.Click += new EventHandler(button3_Click);
                    button3.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("button3.BackgroundImage")));
                    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);
                    RichTextBox rtb = new RichTextBox();
                    string dateetheure = Convert.ToString(DateTime.Now);
                    rtb.LoadFile("Historique.rtf");
                    string text = rtb.Text;
                    string urlh = Convert.ToString(wb.Url);
                    rtb.Text = "\n" + dateetheure + "  -  " + urlh + "  :  " + wb.DocumentTitle + text;
                    rtb.SaveFile("Historique.rtf");
                    textBox2.Text = Convert.ToString(wb.Url);
                    tabControl1.SelectedTab.Text = Convert.ToString(wb.DocumentTitle);
                    button1.Enabled = wb.CanGoBack;
                    button2.Enabled = wb.CanGoForward;
                    button3.BackgroundImage = imageList2.Images[1];
                    button3.Click += new EventHandler(button3_Click);       
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }           
            }
    
            //Quand page du navigateur actif charge
            private void wb_Navigating(object sender, WebBrowserNavigatingEventArgs e)
            {
                try
                {
                    WebKit.WebKitBrowser wb = sender as WebKit.WebKitBrowser;
                    if (wb == null)
                        return;
                    TabPage tabPage = wb.Parent as TabPage;
                    if (tabPage == null)
                        return;
                    tabControl1.SelectedTab.Text = Convert.ToString("Chargement ...");
                    button1.Enabled = wb.CanGoBack;
                    button2.Enabled = wb.CanGoForward;
                    button3.BackgroundImage = imageList2.Images[0];
                    button3.Click += new EventHandler(button3_Click1);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
    
            //Quand changement d'onglet
            private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
            {
                try
                {
                    WebKit.WebKitBrowser wb = GetSelectedWebBrowser();
                    button1.Enabled = wb.CanGoBack;
                    button2.Enabled = wb.CanGoForward;
                    
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
    
            //Permet de régler le blem avec els onglet et le moteur
            private WebKit.WebKitBrowser GetSelectedWebBrowser()
            {
                 foreach (Control ctl in tabControl1.SelectedTab.Controls)
                 {
                     WebKit.WebKitBrowser wb = ctl as WebKit.WebKitBrowser;
                     if (wb != null)
                         return wb;
                 }
                 return null;
            }
    
            //Barre de statut
            public void barreDeStatut()
            {
    
            }
    
            //Nouvel onglet
            public void nouvelOnglet()
            {
                try
                {
                    TabPage tb = new TabPage();
                    tabControl1.TabPages.Add(tb);
                    WebKit.WebKitBrowser WKB = new WebKit.WebKitBrowser();
                    tb.Controls.Add(WKB);
                    WKB.Dock = DockStyle.Fill;
                    RichTextBox rtb = new RichTextBox();
                    rtb.LoadFile("Page d'accueil nouvel onglet.rtf");
                    WKB.Navigate(rtb.Text);
                    tabControl1.SelectedTab = tb; 
                    foreach (TabPage page in tabControl1.TabPages)
                    {
                        foreach (Control ctl in page.Controls)
                        {
                            WebKit.WebKitBrowser wb = ctl as WebKit.WebKitBrowser;
                            if (wb != null)
                            {
                                wb.DocumentCompleted += wb_DocumentCompleted;
                                break;
                            }  
                        }
                    }    
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }           
            }
    
            //Fermer onglet
            public void fermerOnglet()
            {
                try
                {
                    if (tabControl1.TabCount == 1)
                    {
                        RichTextBox rtb = new RichTextBox();
                        WebKit.WebKitBrowser wb = GetSelectedWebBrowser();
                        rtb.LoadFile("Page d'accueil nouvel onglet.rtf");
                        wb.Navigate(rtb.Text);
                    }
                    else
                    {
                        tabControl1.TabPages.Remove(tabControl1.SelectedTab);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }         
            }
    
            //Fermer tout les onglets
            public void fermerToutLesOnglets()
            {
                try
                {
                    if (tabControl1.TabCount > 1)
                    {
                        tabControl1.TabPages.Clear();
                        nouvelOnglet();
                    }
                    else
                    {
                        RichTextBox rtb = new RichTextBox();
                        WebKit.WebKitBrowser wb = GetSelectedWebBrowser();
                        rtb.LoadFile("Page d'accueil nouvel onglet.rtf");
                        wb.Navigate(rtb.Text);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
    
            //Fermer les autres onglets
            public void fermerAutresOnglets()
            {
                try
                {
                    if (tabControl1.TabCount > 1)
                    {
                        WebKit.WebKitBrowser wba = GetSelectedWebBrowser();
                        string url = Convert.ToString(wba.Url);
                        tabControl1.TabPages.Clear();
                        TabPage tb = new TabPage();
                        tabControl1.TabPages.Add(tb);
                        WebKit.WebKitBrowser WKB = new WebKit.WebKitBrowser();
                        tb.Controls.Add(WKB);
                        WKB.Dock = DockStyle.Fill;
                        WKB.Navigate(url);
                        tabControl1.SelectedTab = tb;
                        foreach (TabPage page in tabControl1.TabPages)
                        {
                            foreach (Control ctl in page.Controls)
                            {
                                WebKit.WebKitBrowser wb = ctl as WebKit.WebKitBrowser;
                                if (wb != null)
                                {
                                    wb.DocumentCompleted += wb_DocumentCompleted;
                                    break;
                                }
                            }
                        } 
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
    
            //Dupliquer onglet
            public void dupliquerOnglet()
            {
                try
                {
                    WebKit.WebKitBrowser wba = GetSelectedWebBrowser();
                    string name = Convert.ToString(wba.DocumentTitle);
                    string url = Convert.ToString(wba.Url);
                    TabPage tb = new TabPage(name);
                    tabControl1.TabPages.Add(tb);
                    WebKit.WebKitBrowser WKB = new WebKit.WebKitBrowser();
                    tb.Controls.Add(WKB);
                    WKB.Dock = DockStyle.Fill;
                    WKB.Navigate(url);
                    tabControl1.SelectedTab = tb;
                    foreach (TabPage page in tabControl1.TabPages)
                    {
                        foreach (Control ctl in page.Controls)
                        {
                            WebKit.WebKitBrowser wb = ctl as WebKit.WebKitBrowser;
                            if (wb != null)
                            {
                                wb.DocumentCompleted += wb_DocumentCompleted;
                                break;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
    }
    EDIT :
    Citation Envoyé par tomlev Voir le message
    D'autre part, le RichTextBox, je ne comprends pas pourquoi tu le crées dans wb_DocumentCompleted... ce serait pas plus logique de le créer dans nouvelOnglet ?
    Le RichTextBox, je le créer dans wb_DocumentCompleted car je veut que quand la page finis de charger, elle est dans l'historique. Mais pourquoi la mettre dans nouvelOnglet() ? Je comprend pas trop ...

  18. #18
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Pour l'exception, la seule explication possible c'est que GetSelectedWebBrowser renvoie null...

    Citation Envoyé par Hades Shion
    Le RichTextBox, je le créer dans wb_DocumentCompleted car je veut que quand la page finis de charger, elle est dans l'historique.
    Donc tu crées un nouvel onglet d'historique à chaque fois qu'une page finit de charger
    Il faudrait plutôt mettre à jour l'historique existant, non ?


    Citation Envoyé par Hades Shion
    Mais pourquoi la mettre dans nouvelOnglet() ? Je comprend pas trop ...
    C'est peut-être moi qui ai mal compris... je croyais que tu voulais voir ton RichTextBox quand on ouvre un nouvel onglet, un peu comme dans Chrome

  19. #19
    Membre du Club 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
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Pour l'exception, la seule explication possible c'est que GetSelectedWebBrowser renvoie null...
    J'ai réussis à supprimez cette exeption en procédant comme ceci :
    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
    //Quand changement d'onglet
            private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
            {
                try
                {
                    WebKit.WebKitBrowser wb = sender as WebKit.WebKitBrowser;
                    if (wb == null)
                        return;
                    TabPage tabPage = wb.Parent as TabPage;
                    if (tabPage == null)
                        return;
                    if (wb != null)
                    {
                        button1.Enabled = wb.CanGoBack;
                        button2.Enabled = wb.CanGoForward;
                    }   
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
    Citation Envoyé par tomlev Voir le message
    Donc tu crées un nouvel onglet d'historique à chaque fois qu'une page finit de charger
    Il faudrait plutôt mettre à jour l'historique existant, non ?
    Il y a juste deux lignes qui servent à rien et c'est pour créer un nouvel onglet quand la page finis de charger, j'avais pas vu ... c'est illogique

    Citation Envoyé par tomlev Voir le message
    C'est peut-être moi qui ai mal compris... je croyais que tu voulais voir ton RichTextBox quand on ouvre un nouvel onglet, un peu comme dans Chrome
    Je fait ouvrir ce richtextbox que quand l'utilisateur décide de voir l'historique.

    Et sinon sa marche parfaitement, je te remercie pour ton aide

    Merci beaucoup

    Je met ce sujet en résolu

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/12/2006, 06h42
  2. connaître le numéro de l'onglet actif
    Par chourmo dans le forum Delphi
    Réponses: 8
    Dernier message: 18/07/2006, 15h05
  3. JTabbedPane - Onglet actif
    Par Trillian dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 22/05/2006, 07h19
  4. Différente couleur pour l'onglet actif du menu css
    Par brotelle dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 12/04/2006, 10h18
  5. pbm onglet actif
    Par nine dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 15/12/2005, 14h44

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