Heritage visuel en vb.net

blau Messages postés 10 Date d'inscription samedi 2 mars 2002 Statut Membre Dernière intervention 25 avril 2003 - 25 avril 2003 à 09:16
l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012 - 12 mai 2010 à 16:27
Bonjour,

Comment utiliser l'héritage pour pouvoir modifier l'apparence de contrôles standard en un endroit et que ces modifications se répercute dans tout le programme ?

Je crée un contrôle hérité de System.Windows.Forms.ListView; je l'appelle "monControle" et je l'implémente dans un formulaire sous le nom "monObjet".

Si je modifie la couleur de fond (qui est une propriété standard de ListView avec une valeur par défaut) du contrôle "monControle" dans la fenêtre de propriété, l'environnement de développement génère le code suivant dans mon formulaire:
monObjet.backColor = nouvelleCouleur
Si je modifie à nouveau la couleur de fond dans "monControle", le code dans mon formulaire ne change pas, donc la couleur de "monObjet" dans mon formulaire ne change pas.

J’ai essayé de résoudre le problème en modifiant la couleur de fond de mon contrôle non pas dans la fenêtre de propriété mais dans la méthode "OnPaint" mais ça ne marche pas.

Merci pour votre aide.

Benoît

3 réponses

blau Messages postés 10 Date d'inscription samedi 2 mars 2002 Statut Membre Dernière intervention 25 avril 2003
25 avril 2003 à 19:01
pour répercuter sans problème la largeur d'un combobox, j'ai trouvé cette solution:

Public Class maCbx Inherits System.Windows.Forms.ComboBox
Public Shadows ReadOnly Property DropDownWidth()
Get
DropDownWidth = MyBase.DropDownWidth
End Get
End Property
Public Sub New()
MyBase.New()
MyBase.DropDownWidth = 200
End Sub
End Class

CA MARCHE!

le problème c'est que ça ne marche pas pour les propriétés comme: backcolor, font

Et je ne sais pas comment faire pour la propriété image d'un bouton

si quelqu'un a des tuyaux!!

Benoit
0
l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012
12 mai 2010 à 16:02
Bonjour,

dans la continuité de cette discutions commencée jadis;

on pourrait déclarer une classe contenant un controle que l'on peut manipuler avec toutes ses propriétés.

'***************************************************************************
public class comboPour_monappli

public moncontrole as checkbox ou combo...

public sub jefaistoutcequejeveux
'ici
end sub

end class
'***************************************************************************

seul hic je ne sait pas comment heriter des "events" car me.montrole.scroll ou .click ou ... ça donne une erreur!

donc si vous avez trouver une solution idéale, je suis preneur.

merci pour vos commentaires.
0
l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012
12 mai 2010 à 16:27
declarer

public withevents moncontrole as ...
ou
friend ...

c'est le withevents qui change tout
0
Rejoignez-nous