PeTeRsLaStAr
Messages postés158Date d'inscriptionsamedi 22 juin 2002StatutMembreDernière intervention27 juin 2015
-
25 sept. 2006 à 12:25
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 2014
-
26 sept. 2006 à 14:22
Bonjour.
Je dois dans le cadre d'un développement créer un controle qui dérive du composant TxBox normal.
Je trouve quasimment toutes les propriétés, sauf par exemple la propriété BorderStyle ou Locked.
Pour la propriété Locked, celle ci apparait pourtant bien à l'écran...
Est ce qu'il faut ajouter quelque chose, dans mon code, si je souhaite dériver des propriétés de type graphique à un controle ?
Voilà comment je procède (mais ça n'avancera pas le problème je pense ^^)
public
class TxBox : TextBox
// Hérite de textBox{
//etc...
}
Merci pour vos conseils.
****************************************************
Il n'y a pas de pb sans solutions : il faut juste trouver le temps pour les chercher
PeTeRsLaStAr
Messages postés158Date d'inscriptionsamedi 22 juin 2002StatutMembreDernière intervention27 juin 20151 26 sept. 2006 à 11:25
Cela ne répond pas à ma question...
Je ne peux pas plus y accéder...
Je n'ai pas accès à la propriété borderstyle dans mes 'public override ... BorderStyle'
Alors que je vois bien BackColor et ForeColor...
****************************************************
Il n'y a pas de pb sans solutions : il faut juste trouver le temps pour les chercher
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201436 26 sept. 2006 à 11:29
c'est parcequ'elle n'existe pas !
La classe TextBox hérite de TextBoxBase qui hérite à son tour de Control. Aucune de ces classe n'a de propriété BorderStyle ! Donc, c'est normal que tu ne puisses pas la surcharger.
La source que je t'ai donné en exemple utilise les APIs pour aller redessiner sur les bordures en écoutant le message WM_NCPAINT envoyé par Windows à ton TextBox.
PeTeRsLaStAr
Messages postés158Date d'inscriptionsamedi 22 juin 2002StatutMembreDernière intervention27 juin 20151 26 sept. 2006 à 14:10
Ok.
Ceci explique donc pourquoi j'ai le message suivante
"Le mot clé new est requis sur 'TxEuTxBoxNet.TxBox.BorderStyle', car il masque le membre hérité 'System.Windows.Forms.TextBoxBase.BorderStyle'"
public BorderStyle BorderStyle{
get{
return
base.BorderStyle;}
set{
base.BorderStyle =
value;}}
Par contre, je ne vois pas comment implémenter les solutions de ton application Flatcontrol... Pourrais tu m'éclairer un peu plus stp ?
****************************************************
Il n'y a pas de pb sans solutions : il faut juste trouver le temps pour les chercher
Vous n’avez pas trouvé la réponse que vous recherchez ?
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201436 26 sept. 2006 à 14:22
en fait... ma source utilise un moyen détourné de gérer les bordures des textboxes.
je m'accroche a un controle en m'appropriant sont Handle grâce à la classe NativeWindow (méthode Attach de FlatControl.cs). Ensuite, je peux écouter les messages que Windows lui envoie.
Les messages importants sont WM_PAINT et WM_NCPAINT.
Ensuite dans la méthode OnPaint, je redessine le contrôle avec les bordures que je veux...