[C#] OnPaint sur un Label ?

OnPaint sur un Label ? [C#] - C#/.NET managed - Programmation

Marsh Posté le 24-03-2006 à 11:15:05    

Faut égorger quel marque de poulet pour que le "OnPaint" se déclenche sur un System.Windows.Forms.Label du Compact Framework 2.0 ? (pas testé si dans le framework Win32 ça marche ou pas).
 
En effet, par souci d'économie de développement, j'ai commencé à écrire un namespace dans lequel je vais pouvoir surcharger un certain nombre de contrôles System.Windows.Forms afin de les rendre automatiquement localizables (on rempli la propriété "Name" et zou, ça recherche dans un fichier de ressources si y'a un libellé associé à ce code).
 
Ca marche très bien avec Form, mais Label, pas moyen de déclencher "OnPaint" (en fait, pas moyen de trouver un seul évènement qui marche tout court).

Reply

Marsh Posté le 24-03-2006 à 11:15:05   

Reply

Marsh Posté le 24-03-2006 à 13:00:58    

c'est je suppose par économie. Forcer l'évènement ne ferait il pas l'affaire?

Reply

Marsh Posté le 24-03-2006 à 14:25:45    

Ze goal of the game, c'est d'avoir un truc automatique justement.
 
En gros, je fais une application avec les contrôles standard.
Je rajoute un using.
Extended find/replace pour mettre GLabel et GForm à la place de Label et Form, et je shootes toutes les affectations de constantes à mes .Text
Et là, miracle, mon appli est multi-lingue.
 
Pour cette raison, j'aimerais bien avoir le minimum à rajouter comme code... :/
 
Pour les Form, ça marche sans souci, mais par pour les labels :/


Message édité par Arjuna le 24-03-2006 à 14:26:57
Reply

Marsh Posté le 24-03-2006 à 14:28:25    

Bon, tu me diras, vu que je suis en train de tilter...
 
Je pourrais modifier la surcharge du OnPaint de Form afin non seulement de changer le titre, mais raiser le OnPaint de tous les GLabel qui sont dans Controls...

Reply

Marsh Posté le 26-03-2006 à 14:36:51    

bonjour,
 
Une solution serait d'utiliser un "extender" pour les contrôles que tu veux rendre localisables.
il faut que tu développes un contrôle extender avec IExtenderProvider que tu déposes sur ta Form.
Il agira comme le contrôle ErrorProvider.
 
http://www.csharpfr.com/code.aspx?ID=33786
http://www.csharpfr.com/code.aspx?ID=32604


Message édité par xfifi le 26-03-2006 à 17:47:59
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed