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 :

La listbox et l'effet aero


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2011
    Messages : 56
    Par défaut La listbox et l'effet aero
    Bonjour,
    Je vous explique mon problème:
    J'ai developpé une application Windows Form en vb.net et j'y ai rajouté du code pour y avoir un effet aero sur Windows Vista et Seven. Voyant que le texte des labels et des boutons étaient illisibles (quand l'aero était activé sur mon app), j'ai cherché et trouvé sur Internet des controls prévues a cet effet. Seulement, maintenant, j'ai besoin d'une listbox et, comme les labels "basiques", le texte des éléments de ma listbox est complètement illisible. J'ai cherché des controles modifiées mais je n'ai pas trouvé. Si je modifie la propriété "transparencykeys" en une autre couleur et "Backcolor" aussi, le problème des texte illisibles est résolu mais quand je clique sur la zone aero, ça selectionne ce qui est derrière mon application. Sauriez-vous comment je peut faire pour que je puisse avoir une listbox lisible ?

    Merci d'avance et bonne journée.

  2. #2
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut backcolor ou backgroundimage
    bonjour
    La couleur choisie dans TransparencyKey determine la zone non-reactive du controle.Essaie :
    -soit BackgroundImage
    Dans BackgroundImage tu mettras un BitMap de couleur approprie que tu peux creer dans Paint.
    -soit ForeGround Couleur du Texte comme ca le BackGround reste reactif.
    bon code...

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2011
    Messages : 56
    Par défaut
    Désolé, je me suis mal exprimé.
    Quand je parlais du TransparencyKeys, je disait que quand je selectionnait une couleur pour le Transparency Key et backcolor (ex: bleu), le problème du texte n'y était plus mais quans je cliquait dans la zone en aero (en backcolor bleu), ça selectionnait ce qui est derrière mon application. Sinon, je n'ai pas vraiment compris ta technique du backgroundimage
    Bonne soirée

  4. #4
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut backcolor ou backgroundimage
    bonjour
    excuse -moi mais c'est de memoire que j'ai parle de BackGroundImage avec un TransparencyKey pour dessiner un form personnalise.
    Helas il n'existe de telle propriete pour les controles de type liste(combobox,listbox,treeview).
    Ces controles ont par contre une propriete plus interessante :Evenement Drawitem qui permet de personnaliser l'affichage des items.
    voici un bout de code que tu pourrais utiliser:
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
     
     
    Public Class Form1
        Public Sub New()
     
            ' Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent()
     
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
            'Mettre DrawMode,necessaire
            Me.ListBox1.DrawMode = DrawMode.OwnerDrawFixed
     
            For I As Integer = 0 To 10
                Me.ListBox1.Items.Add("Item" & (I + 1).ToString)
            Next
     
     
        End Sub
     
        Private Sub ListBox1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ListBox1.DrawItem
            '1/appel a DrawBackground
            e.DrawBackground()
     
            '2/Couleur de Background
            Dim objList As ListBox = CType(sender, ListBox)
            Dim monBrushBackGround As Brush = New SolidBrush(Color.Aquamarine)
            e.Graphics.FillRectangle(monBrushBackGround, e.Bounds)
            '3/Definit une fonte,avec Bold, et Couleur du texte
            Dim itemFont As Font = e.Font
            Dim metFont As Boolean = False
     
            ' Dessiner en Bold si element selectionne
            If (e.State And DrawItemState.Selected) = _
              DrawItemState.Selected Then
                metFont = True
                itemFont = New Font(itemFont, FontStyle.Bold)
            End If
     
            ' Dessine l'Item ListBox en "Rouge ou ce que tu veux"
     
            If ListBox1.Items(e.Index) IsNot Nothing Then
                e.Graphics.DrawString(ListBox1.Items(e.Index).ToString(), _
              itemFont, New SolidBrush(Color.Red), e.Bounds)
            End If
     
     
            If metFont Then itemFont.Dispose()
            ' Dessine le Rectangle de Focus
            e.DrawFocusRectangle()
        End Sub
     
    End Class
    bon code....

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2011
    Messages : 56
    Par défaut
    Ce n'est pas grave, tout le monde peut se tromper (surtout quand c'est de tête ^^). Sinon, merci pour le code, je testerais plus tard.
    Bonne soirée.

    EDIT: Merci, tout est nikel !

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

Discussions similaires

  1. Effet AERO slides powerpoint
    Par superfunk dans le forum Powerpoint
    Réponses: 2
    Dernier message: 19/01/2011, 17h59
  2. Réponses: 2
    Dernier message: 04/08/2010, 12h33
  3. PNG sur un effet glass Vista Aero
    Par Edtech dans le forum Composants VCL
    Réponses: 3
    Dernier message: 16/10/2007, 12h55
  4. DrawItem d'un listbox...
    Par scorpiwolf dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/06/2007, 15h50
  5. [Listbox] ScrollBar Horizontal
    Par haleem dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/04/2005, 07h53

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