none
Panel Transparent sur un webbrowser RRS feed

  • Question

  • Bonjour à tous.

    Pour diverses raisons ( l'une d'entre elles étant d'avoir un Cursors.WaitCursor sur le browser pendant les chargements) je souhaite placer un panel totalement transparent au dessus d'un webbrowser. Malheureusement un backcolor avec une valeur color.transparent n'a aucun effet, le panel apparaît totalement noir.

    Quelqu'un aurait-il une solution à me suggérer.

    Pendant que j'y suis, et sur le même sujet... y a t'il une différence entre :

    Panel.parent = browser

    et

    browser.controls.add(panel)

    Merci d'avance.



    • Modifié mag2013 mercredi 6 juin 2012 09:22
    mercredi 6 juin 2012 09:15

Réponses

  • Bonjour mag n° 2013,

    - A défaut, tu peut mettre deux WebBrowser, tu effaces celui du dessus (le fonctionnel) par Visible = False, puis chargé (trouvé ou pas), tu réaffiche le second sur le premier qui sert de décore.

    - Pour le curseur de ton choix, voir si le WB accepte les curseurs, sinon mettre un objet qui va afficher un faux curseur de ton choix le temps du chargement, mais tu peux aussi coincer la souris...

    - La barre de progression est généralement sous le WB qui n'est pas ancré dans la form, là, toi tu veux l'afficher dessus, reste à voir si c'est accepté et fonctionnel.

    Normalement et selon les exemples Microsoft, on utilise un SplitContainer (mettre en fractionnement horizontal et non ancré), puis on colle au dessus le texteBox d'adresse, puis on fractionne le SplitContainer afin de lui laisser une place pour la barre de progression en bas que l'on y colle, et in fine on ancre le webbrowser dans la partie supérieur), comme ceci :

    Alors toi tu veux faire tout autre chose, ce n'est guère prévu ainsi, tu peux sans doute, mais en utilisant des subterfuges non prévus...

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    mercredi 6 juin 2012 11:10

Toutes les réponses

  • Bonjour,

    Tu écris :

    ... d'avoir un Cursors.WaitCursor sur le browser pendant les chargements ...

    Si j'ai bien compris tu veux afficher un curseur l'ors du chargement du WebBrowser, je viens d'essayer ce petit code pour voir :

    Option Explicit On
    Public Class Form1
    
      Sub Form1_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown
        WebBrowser1.Navigate("irolog.free.f") ' "irolog.free.fr"
      End Sub
    
      Sub WebBrowser1_DocumentCompleted(sender As System.Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        MsgBox("fin chargement")
      End Sub
    
    End Class

    J'ai passé une fausse adresse pour le faire ramer, et pendant qu'il chercher tu as bien le curseur avec le sablier d'affiché sur le WebBrowser, alors à quel niveau se situe le problème (toujours si j'ai bien compris le but) ?

    Pour le reste je ne sais pas, désolé ;o)

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire



    • Modifié EhJoe mercredi 6 juin 2012 09:49  
    mercredi 6 juin 2012 09:48
  • Bonjour,

    Je pense que le panel sert de champs pour éviter d'interagir avec le webbrowser en attendant la fin du chargement, c'est bien ça ?

    La transparence fonctionne bien chez moi sur un panel ... vous devriez avoir une propriété, sur le panel, qui ne prend pas en charge l'autre propriété transparence ...


    Cordialement,

    mercredi 6 juin 2012 09:58
    Auteur de réponse
  • En fait, ce panel doit me servir a plusieurs choses :

    1 - pouvoir empécher toute interaction avec le browser

    2 - afficher le curseur souris de mon choix selon les besoins de l'application

    3 - afficher éventuellement une barre d'avancement par dessus

    4 - pouvoir afficher, par dessus le bowser, des zones de sélection permettant de faire des copies graphiques localisées

    etc..


    • Modifié mag2013 mercredi 6 juin 2012 10:29
    mercredi 6 juin 2012 10:24
  • Bonjour mag n° 2013,

    - A défaut, tu peut mettre deux WebBrowser, tu effaces celui du dessus (le fonctionnel) par Visible = False, puis chargé (trouvé ou pas), tu réaffiche le second sur le premier qui sert de décore.

    - Pour le curseur de ton choix, voir si le WB accepte les curseurs, sinon mettre un objet qui va afficher un faux curseur de ton choix le temps du chargement, mais tu peux aussi coincer la souris...

    - La barre de progression est généralement sous le WB qui n'est pas ancré dans la form, là, toi tu veux l'afficher dessus, reste à voir si c'est accepté et fonctionnel.

    Normalement et selon les exemples Microsoft, on utilise un SplitContainer (mettre en fractionnement horizontal et non ancré), puis on colle au dessus le texteBox d'adresse, puis on fractionne le SplitContainer afin de lui laisser une place pour la barre de progression en bas que l'on y colle, et in fine on ancre le webbrowser dans la partie supérieur), comme ceci :

    Alors toi tu veux faire tout autre chose, ce n'est guère prévu ainsi, tu peux sans doute, mais en utilisant des subterfuges non prévus...

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    mercredi 6 juin 2012 11:10
  • Le choix du panel pourrais être un choix pour diverses raisons

    Je suis un peux du même avis que Joseph sauf au lieu de prendre la propriété visible j'aurais pris la propriété (du webbrowser) disable (le contrôle reste visible)

    Pour répondre a votre question de base : vous ne pouvez pas prendre un webbrowser en tant que contrôle conteneur comme le ferais un panel ou un contrôle form, ..., ...

    La seul chose que vous pouvez faire est de positionner le panel en superposition du webbrowser puis de lui faire les arrangements que vous voulez

    Si vous obtenez un carré noir a la place de la transparence c'est, peut etre, que vous avez un problème de puissance video ou de RAM

    Les essaies que j'ai fait pour ce qui me concerne son fonctionnel et concluant c'est a dire que le panel ce trouve au dessus du webbrowser et la transparence fcontionne bien, je n'ai pas de couleur noir !


    Cordialement,

    mercredi 6 juin 2012 12:11
    Auteur de réponse
  • Xavier,

    Juste une petite précision :

    Le webBrowser n'a pas de disabled (Enabled = False) a priori, c'est un objet un peu spécial...

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire


    mercredi 6 juin 2012 13:25
  • Oui, j'ai mal expliqué la chose.

    En positionnant un panel puis en m’étant le webbrowser dans le panel et en faisant panel1.enable = False cela désactivera aussi son contenu.
    Tout les contrôles dans le panel hérites des même propriété, même quand elle n'existe pas.


    Cordialement,

    mercredi 6 juin 2012 13:34
    Auteur de réponse