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

VB.NET Discussion :

Problème de Favoris - Webbrowser


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 125
    Par défaut Problème de Favoris - Webbrowser
    bonjours a toute la communauté,

    Aujourd'hui, j'ai besoin de l'aide de tous pour résoudre mon problème.

    voici ce que j'essaye de faire:

    Crée des favoris de Webbrowser.

    Bon , c'est très simple, le save fonctionne tous. mais le PROBLÈME est la:

    Je veux avoir le favoris comme Text le Webbrowser.documenttitle
    et lorsque l'on click dessus, le Webbrowser.url.tostring

    Voici mon Codage en plusieur partie.

    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
     
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim item1 As New ListViewItem
     
            item1.Name = TextBox2.Text
            item1.Text = TextBox1.Text
     
     
            FrmBase.ListView1.Items.Add(item1)
            My.Settings.FavList.Add(TextBox2.Text)
            My.Settings.HistoriqueCombobox.Add(TextBox1.Text)
            Me.Close()
        End Sub
     
    'pour ajouter le favoris - A cette partie tous fonctionne correctement, 'lorsqu'on click avec le code ci-dessous , tous fonctionne , sa navige etc. . .
     
    Private Sub ListView1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) _
    Handles ListView1.MouseUp
            Try
                Dim hti As ListViewHitTestInfo = ListView1.HitTest(e.Location)
                Dim url As String = hti.Item.Name
                CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Navigate(url)
     
    'pour ajouter le traiteur d'événement sur le click. - Tous MARCHE. C'est 'fantastique mais . . .  lorsque j'arrive au save et que jouvre le browser a 'nouveau . . la c'est mon gros problème. 
    'J'avais essayer avec 2 save , 1 pour le name et l'autre pour le text ,
     'mais sa donne que sa copie environ 2,3x fois
     'les item qui sont dans my.settings . . .
     
    For Each item As String In My.Settings.FavList
                For Each itemm As String In My.Settings.HistoriqueCombobox
                    Dim item1 As New ListViewItem
                    item1.Name = item.ToString
                    item1.Text = itemm.ToString
                    ListView1.Items.Add(item1)
                Next
            Next
    Alors, je vous le demande a nouveau a tous, Aidez moi, c'est le peu qu'il me reste.

    Un gros merci encore

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 80
    Par défaut
    Bonjour,

    Comme je vois le code dans My.Settings tu a créé 2 objet List(Of string)
    Fais attention, les listes ne te donne pas la garantie d'être indexé dans l'ordre!
    Dans ton code tu fais 2 boucles donc il est normal que tu obtienne des valeurs à double.

    Je te conseil plutot de créer un dictionnaire dans My.Settings ou SortedDictonnary si il doivent être dans l'ordre alphabetique.
    Ensuite:
    My.Settings.MonDictionnaire = new Dictionnary(Of string,string)
    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
     
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim item1 As New ListViewItem
     
            item1.Name = TextBox2.Text
            item1.Text = TextBox1.Text
     
     
            FrmBase.ListView1.Items.Add(item1)
            My.Settings.MonDictionnaire.Add(TextBox2.Text,TextBox1.Text)
            Me.Close()
        End Sub
     
    Private Sub ListView1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) _
    Handles ListView1.MouseUp
            Try
                Dim hti As ListViewHitTestInfo = ListView1.HitTest(e.Location)
                Dim url As String = hti.Item.Name
                CType(TabControl1.SelectedTab.Controls.Item(0), WebBrowser).Navigate(url)
     
    For Each item as KeyValuePair(Of string,string) in My.Settings.MonDictionnaire
    dim item1 as New ListViewItem
    item1.Name = item..Key
    item1.Text = item.Value
    ListView1.Items.add(item1)
    Next

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 125
    Par défaut
    Bonjour, MErci beacoup de prendre soin de mes petit problèmes,

    Mais, je ne comprend pas vraiment, je veux dire je ne suis pas capable d'aller dans My.settings.dictionnary, le seul je peux prendre ses :
    System.Collections.Specialized.StringDictionary

    Avec celui-ci , je ne peux pas d'éclarer le code du début qu'il faut entrer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    My.Settings.MonDictionnaire = new Dictionnary(Of string,string)
    et lorsque j'entre mon favoris, jai une erreur d'exeption : La référence d'objet n'est pas définie à une instance d'un objet. et sa souligne en jaune le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    My.Settings.MonDictionnaire.Add(TextBox2.Text, TextBox1.Text)
    Merci encore, Petite présision, j'utilise Vb 2008 express édition,
    Et en plus , pendant que nous y sommes, comment faire que les Listview items s'add lors du démarage avec le code ci-dessous( je veux dire , que l'item prenne son Item.name et son Item.text)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     For Each item As String In My.Settings.MonDictionnaire
     
                Dim item1 As New ListViewItem
                item1.Name = item.ToString
                item1.Text = item.ToString
                ListView1.Items.Add(item1)
            Next
    Gros merci pour ton aide

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 80
    Par défaut
    J'avais pas compris que tu était passé par le mode design du settings.

    Le plus simple est de créer une variable dans ton application, idéalement membre de class avec le type dictionnary(Of string,string) et ensuite utiliser cette variable et ne plus utiliser my.settings.
    Ou créer la variable ou une structure dans le namespace my mais là ça devient plus compliqué.

    Cependant si tu veux que le listview se remplisse dès le démarrage il te faut le mettre dans ton Form_Load et tu as besoin d'une base de données externe pour stocké tes Url.(soit un DB ou un fichier Txt ou Xml)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 125
    Par défaut
    Dans ce cas, comment faire si je veux utiliser disont un ficher XML pour ma base do donné?

    Merci de m'éclairer la voie =D

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2009
    Messages : 80
    Par défaut
    essai simplement de créer une datatable avec 2 colonnes.
    Tu la rempli lors du click du bouton et ensuite tu la sauvegarde au format XML avec MaDatatable.WriteXML("Chemin du fichier")

    Et dans le Form_Load tu fait l'inverse MaDataTable.ReadXML("Chemin du fichier")

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 125
    Par défaut
    DAns le fond , il n'y aurais pas une facon avec les variable Dictionnary de faire mes items. je veux dire, utiliser la variable dictionnaire pour le Item.name et un autre variable dictionnaire pour le ITem.Text

    MErci de ton aide =D

Discussions similaires

  1. [LV 8.6] problème conteneur activeX WebBrowser
    Par sapeurpompier26 dans le forum LabVIEW
    Réponses: 2
    Dernier message: 20/08/2010, 14h47
  2. Problème Refresh avec WebBrowser.Navigate
    Par Magohamoths dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/11/2009, 09h54
  3. Problème avec Favoris Réseau
    Par reeda dans le forum Windows XP
    Réponses: 0
    Dernier message: 08/09/2008, 16h46
  4. Problème de favoris avec IE 7
    Par Chilpéric dans le forum IE
    Réponses: 0
    Dernier message: 15/10/2007, 22h50
  5. [VB 2005] Problème avec contrôle WebBrowser
    Par Vinoo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/09/2007, 00h37

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