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 :

[VB.NET] Comment affecter la transparence à 1 UserControl ?


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 8
    Points
    8
    Par défaut [VB.NET] Comment affecter la transparence à 1 UserControl ?
    Bonjour !

    J'ai créé un petit contrôle utilisateur qui à une forme ronde, et j'aimerai bien que l'arrière plan, tout ce qui est hors du rond, soit transparent, c'est à dire qu'il laisse aparaître le panel dans lequel ce contrôle utilisateur est contenu.

    Pour un form, il est possible de mettre une couleur transparente, mais pas pour un contrôle utilisateur.

    A l'aide, please ! Merci


    Legli

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Points
    621
    Par défaut
    Il faut utiliser Control.Region pour limiter le contrôle à une forme non rectangulaire.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Merci du tuyau, mais un petit exemple ou un petit lien serait bien venu... j'ai bien cherché, j'ai pas encore trouvé !

    Merci NicolasG !

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Merci, ca marche bien, sauf quand je veux effacer le "graphics" associé à mon contôle utilisateur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim graPanel As Graphics = Me.panel.createGraphics()
     
    graPanel.Clear(Me.BackColor)
    Si Me.BackColor est initialisée à "Transparent", mon contrôle devient tout noir !

    Quelqu'un sait comment y remédier? Ou m'aider sur l'option "region" proposée plus haut?

    Merci !


    Legli

  6. #6
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Pourquoi effacé le Graphics du Panel : : :

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Ca, c'est mon problème ! looool

    En fait je dessine sur mon contrôle utilisateur !

    Mais j'ai trouvé la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim graPanel As Graphics = Me.createGraphics() 
     
    graPanel.Flush()
    If Me.BackColor.ToString <> Color.Transparent.ToString Then
          graPanel.Clear(Me.BackColor)
    End If
    Ce code vide le buffer du graphique et remet la couleur d'arrière plan (avec "Clear") à jour si elle n'est pas transparente !

    Voila !

    Merci pour l'aide


    Legli

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/07/2006, 13h35
  2. Réponses: 2
    Dernier message: 19/05/2006, 15h53
  3. [VB.Net] Comment utiliser CSS dans un UserControl ?
    Par GEFIRO1 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 27/04/2006, 09h27
  4. Réponses: 5
    Dernier message: 14/10/2005, 11h39
  5. [VB.NET] Comment garder un label transparent.
    Par djmcg dans le forum Windows Forms
    Réponses: 9
    Dernier message: 05/03/2005, 21h02

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