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 :

[C#] Bug (?) avec la propriété TransparencyKey de la Form


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 32
    Points : 23
    Points
    23
    Par défaut [C#] Bug (?) avec la propriété TransparencyKey de la Form
    Salut à tous, je crois avoir soulevé un bug avec la transparence de la Form en C#.

    Si on fait ce code, tout est nickel : la Form s'affiche en plein écran, et est transparente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    int x = 0, y = 0,
    	largeur = Screen.PrimaryScreen.WorkingArea.Width,
    	hauteur = Screen.PrimaryScreen.WorkingArea.Height;
     
    Form f = new Form();
    f.SetBounds(x, y, largeur, hauteur);
    f.TransparencyKey = Color.Blue;
    f.BackColor = Color.Blue;
     
    f.ShowDialog();
    Maintenant, je veux ajouter un Label à ma Form. Le Label doit aussi être transparent, et pour l'instant, je n'affiche rien dedans.
    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
    int x = 0, y = 0,
    	largeur = Screen.PrimaryScreen.WorkingArea.Width,
    	hauteur = Screen.PrimaryScreen.WorkingArea.Height;
     
    Form f = new Form();
    f.SetBounds(x, y, largeur, hauteur);
    f.TransparencyKey = Color.Blue;
    f.BackColor = Color.Blue;
     
    Label l = new Label();
    l.BackColor = Color.Transparent;
    l.SetBounds(x, y, largeur, hauteur);
     
    f.Controls.Add(l);
    f.ShowDialog();
    Et là, chez moi tout du moins, ça ne marche plus. Le Label prend la couleur du TransparencyKey que j'ai affecté à la Form, cad bleu.

    Le plus étrange est que le Label est bien transparent si on utilise des dimensions inférieures, par exemple x=300, y=300, largeur=500, hauteur=500.

    Voilà, je suis bien embêté pour mon projet actuel. Pourriez-vous me dire, déjà, si le problème survient pareil chez vous ? Et ensuite, si quelqu'un avait une solution ou une explication à proposer...

    Merci beaucoup.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    up !

    Quelqu'un pourrait me dire si le problème survient aussi chez lui ? Merci.

  3. #3
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    Il se peut que ca vienne a cause de la taille du label (qui est trop grand pour la form et qui depasse un peu)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    'au lieu de 
    l.SetBounds(x, y, largeur, hauteur); 
     
    'mets
    l.Dock=DockStyle.Fill
    le label est ainsi pile a la bonne taille

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Non, cela donne exactement le même résultat... Merci quand même.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    up !

    Personne ne peut au moins me dire si le problème est le même chez lui ?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Pour ceux que ça peut interesser : il s'agit bien d'un bug, qui apparrait seulement si l'écran est reglé en 24 bits ou plus.

    Pour le régler, il faut appeller la méthode du label : SetStyle (ControlStyles.DoubleBuffer, false), ce qui n'est possible qu'un écrivant sa propre classe dérivant du Label.

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

Discussions similaires

  1. Bug avec le test de profondeur
    Par Tellmarch dans le forum OpenGL
    Réponses: 1
    Dernier message: 17/10/2004, 00h59
  2. Recuperation de la taille d'une image avec la propriété SRC
    Par CDRIK dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 08/10/2004, 03h05
  3. Bug avec requete
    Par arsgunner dans le forum ASP
    Réponses: 8
    Dernier message: 14/06/2004, 16h25
  4. [CR9] Bug avec les champs à valeur vide ?
    Par Djob dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 15/07/2003, 21h21

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