Probleme listview

yohan49 Messages postés 380 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 août 2011 - 17 juil. 2005 à 08:24
yohan49 Messages postés 380 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 août 2011 - 18 juil. 2005 à 18:23
bon un gros souci , j'ai creer une listview transparente qui fonctionne bien , trop bien meme ! car aucun items ne s'affiche
voici ma classe derive de la listview , aider moi a afficher les items svp , ca fait 5 jours que je cherche merci :))

Class Transparentlistview



Inherits ListView



Public
Sub
New()



MyBase.SetStyle(ControlStyles.UserPaint,
True)



MyBase.SetStyle(ControlStyles.OptimizedDoubleBuffer,
True)



MyBase.SetStyle(ControlStyles.SupportsTransparentBackColor,
True)



MyBase.UpdateStyles()



MyBase.Visible =
True



End
Sub



Protected
Overloads
Overrides
ReadOnly
Property CreateParams()
As CreateParams



Get



Dim cp
As CreateParams =
MyBase.CreateParams


cp.ExStyle = cp.ExStyle
Or 32



Return cp



End
Get



End
Property



Protected
Overridable
Overloads
ReadOnly
Property forecolor()
As Color



Get



Return Color.Aqua



End
Get



End
Property


End
Class

14 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
17 juil. 2005 à 16:21
Salut,

Le forecolor ne serait-il pas = au backcolor par hasard ?

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
yohan49 Messages postés 380 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 août 2011 8
17 juil. 2005 à 16:35
theoriquement non

et meme les icones associer au items son invisible
0
Utilisateur anonyme
17 juil. 2005 à 16:53
Effectivement j'ai tester, esseyer de modifier 2,3 trucs mais ya rien à faire, c tout transparant, j'comprend pas.

Désoler


ChRb
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
17 juil. 2005 à 17:11
Je ne peux pas tester (pas vb.net chez moi) mais un truc m'intrigue :

cp.ExStyle = cp.ExStyle Or 32

ça sert à quoi ? à modifier le style de la listview ? ça pourrait se siruer là le prob.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yohan49 Messages postés 380 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 août 2011 8
17 juil. 2005 à 17:15
cp.ExStyle = cp.ExStyle Or 32 <<<<<<<<< sert a donner la transparence a la listview de facon a avoir l'image de fond de la form visible sous la listview
0
Utilisateur anonyme
17 juil. 2005 à 17:34
Je ne vois pas à quoi sert propriété CreateParams et forecolor. La listView prend l'image de fond de la form à condition d'avoir mis la ListView en BackColor = Transparant.



ChRb
0
yohan49 Messages postés 380 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 août 2011 8
17 juil. 2005 à 17:36
ha non la listview refuse le backcolor transparent
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
17 juil. 2005 à 17:40
Je viens de voir que tu as posté une source : http://vbfrance.com/code.aspx?ID=32647

Elle ne fonctionne pas pour une listview ?

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
yohan49 Messages postés 380 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 août 2011 8
17 juil. 2005 à 17:42
si si trop bien , c vrai il faut que je modifie le titre car ca marche pour les listeview mais pas pour les items que l'on rajoute
0
Utilisateur anonyme
17 juil. 2005 à 17:49
Ta listView accepte le BackColor Transparant vu que tua à mis

MyBase.SetStyle(ControlStyles.SupportsTransparentBackColor, True)

Cette ligne sert justement à ça.



ChRb
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
17 juil. 2005 à 18:07
Désolé, je n'ai plus d'idée, à part jouer avec ta property forecolor.
Ou alors, dixit des copains que j'ai mailé, peut-être un prob de 1er ou arrière plan. Mais, dans ce cas, je ne vois pas pourquoi le listview serait visible et pas sont contenu.
Si personne n'a trouvé la solution, je verrai ça demain au boulot, là je n'ai pas les outils.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
yohan49 Messages postés 380 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 août 2011 8
17 juil. 2005 à 18:08
merci canislupus
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
18 juil. 2005 à 18:14
Bon, je n'ai eu malheureusement qu'un petit 1/4 d'heure au boulot pour essayer de voir ton prob. Avec vs 2003.

Résultat :
1 - le OptimizedDoubleBuffer était souligné donc en erreur. En tapant ControlStyles. je n'avais pas OptimizedDoubleBuffer dans la liste. Je l'ai donc mis en commentaire.

2 - une erreur sur forecolor() aussi : un mot réservé ? sans doute. Je l'ai renommé.
3 - j'ai essayé avec ces modifs mais ne suis arrivé à rien de positif, manque de temps.

D'ailleurs, je ne sais même pas si c'est possible en vb.net car, en vb6 j'ai essayé un truc dans le genre et j'ai eu d'énormes problèmes pour un résultat somme toute assez décevant et compliqué.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
yohan49 Messages postés 380 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 août 2011 8
18 juil. 2005 à 18:23
ben en fait j'ai reussi a deriver completement la classe , la listview , les items et les icones apparaisse comme il faut , c nikel , mais ca cloche sur le rafraississement quand on actualise la liste , le fond de la forme qui se trouvait sous le rectangle de la listview se retrouve effacé , il faut donc rafraichir la form entiere , puis la listview , donc ca clignote de partout , c pas geniale comme truc :)j'ai donc pris fotoshop , j'ai coupe mon fond de forme au taille voulu suivant resolution , j'avait plus que ca a faire , maintenant tout est bon :)))))

voici la classe qui permets la transparence totale ca pourra reservir un jour :)))


Class Transparentlistview



Inherits ListView



Protected
Overloads
Overrides
ReadOnly
Property CreateParams()
As CreateParams



Get



Dim cp
As CreateParams =
MyBase.CreateParams


cp.ExStyle = cp.ExStyle
Or 32



Return cp



End
Get



End
Property



Public
Overloads
Property BackColor()
As System.Drawing.Color



Get


BackColor = Color.Transparent



End
Get



Set(
ByVal value
As System.Drawing.Color)



End
Set



End
Property



Protected
Overloads
Overrides
Sub OnPaintBackground(
ByVal e
As PaintEventArgs)


BackColor = Color.Transparent



End
Sub


End
Class
0