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 :

Dispose d'un webbrowser et recréation


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Points : 319
    Points
    319
    Par défaut Dispose d'un webbrowser et recréation
    Bonjour,

    Je cale sur un truc extrêmement con...
    J'essaye de faire une "visionneuse de PDF", simplement balayer les PDF d'un répertoire, les afficher dans un webbrowser et un bouton "NEXT" permet de déplacer le fichier visionné dans un autre répertoire et de passer au suivant.

    Au load, je parcours le répertoire cible et j'ajoute via une boucle tous les PDF leurs chemins dans une variable List Of String.
    Je me place sur l'élément 0 de la liste et navigue vers son contenu... tout marche bien !

    Pour le déplacer, j'ai besoin de faire un Dispose() sur le webbrowser pour qu'il lache le PDF en cours.
    Je déplace le fichier.
    Je fait un New WebBrowser et je navigue vers l'élément suivant.

    Sauf que.... le WebBrowser ne veut pas s'afficher...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
                WebBrowser1.Dispose()
                File.Move("\\mbn-file-001\Public\PDF Browser\PDF\" & PDF_ToView(pos), "\\mbn-file-001\Public\PDF Browser\Done\" & PDF_ToView(pos))
                pos = pos + 1
                WebBrowser1 = New WebBrowser()
                WebBrowser1.CreateControl()
                WebBrowser1.Show()
                WebBrowser1.Navigate("\\mbn-file-001\Public\PDF Browser\PDF\" & PDF_ToView(pos))
    Je cherche sur internet depuis plus de 2 heures et je ne vois pas où est le défaut...
    Quelqu'un peut-il combler mon ignorance en m'expliquant pourquoi et comment régler ça?

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    il faut l'ajouter sur la fenetre (ou un autre parent) sinon il n'est nulle part
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    leform.controls.add(WebBrowser1)

  3. #3
    Membre averti
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Points : 319
    Points
    319
    Par défaut


    Je pensais que c'est ce que feraient

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                WebBrowser1.CreateControl()
                WebBrowser1.Show()
    Merci !

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    CreateControl force la création du handle, ce qui est inutile (tu peux supprimer la ligne) vu que c'est fait automatiquement quand c'est nécessaire
    Show fait .visible = true, ce qui est inutile vu que c'est la valeur par défaut (tu peux supprimer la ligne aussi)

    quand tu poses un webbrowser sur un form, dans le fichier .designer.vb ca ajoute les 3 lignes suivantes ici et là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim WebBrowser1 as WebBrowser
    WebBrowser1 = new WebBrowser()
    me.controls.add(WebBrowser1 )
    plus une ligne par propriété ayant une valeur qui n'est pas la valeur par défaut

    quand tu fais Dispose sur le wb ca fait me.parent.controls.remove en plus de détruire l'objet et sa mémoire managée

    quand tu en réinstancie un dans la même variable, ca ne refait tout implicitement ca serait dommage
    que tu réutilises la même variable ca n'est même pas obligatoire
    donc il faut bien dire où tu veux le placer, ca pourrait être sur un panel, ou à un autre endroit, d'où le controls.Add nécessaire

  5. #5
    Membre averti
    Homme Profil pro
    IT Manager
    Inscrit en
    Janvier 2018
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Manager
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2018
    Messages : 220
    Points : 319
    Points
    319
    Par défaut
    Yep, j'ai rencontré le problème directement et effectivement je l'ai tapé dans un panel et c'est beaucoup plus stable

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

Discussions similaires

  1. [MFC] Webbrowser et Pop Up
    Par TheOkko dans le forum MFC
    Réponses: 2
    Dernier message: 01/04/2004, 16h23
  2. Attendre la fin du chargement de la page dans un WebBrowser
    Par core1 dans le forum Web & réseau
    Réponses: 5
    Dernier message: 15/06/2003, 04h12
  3. Empécher la sélection du texte des pages dans un WebBrowser
    Par DevelOpeR13 dans le forum Web & réseau
    Réponses: 2
    Dernier message: 05/06/2003, 18h36
  4. Webbrowser : Comment ne pas prendre la page en cache
    Par cedm78 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 30/08/2002, 11h17
  5. Détections avec WebBrowser
    Par Wazo_Sportive dans le forum Composants VCL
    Réponses: 4
    Dernier message: 11/08/2002, 19h32

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