Controle dérivé et événement [Résolu]

Signaler
Messages postés
346
Date d'inscription
lundi 8 septembre 2003
Statut
Membre
Dernière intervention
3 septembre 2007
-
Messages postés
346
Date d'inscription
lundi 8 septembre 2003
Statut
Membre
Dernière intervention
3 septembre 2007
-
Bonjour,
voila mon probleme,
j'ai créé un controle à parte de deux autres controles existants, pour créer ma propre gestion ( donc un textbox ,et un datetimepicker), jusque la rein d'exceptionnel.
Mon probleme est le suivant : j'ai créé un événement relatif à ce controle ( lorsque la valeur de date change), mais si , lorsque j'implémente mon controle, je ne rajoute pas une fonction lié à cet événement, cela plante.
Je ne sais pas trop comment faire pour éviter cela.

6 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
32
J'ai du mal à tout comprendre aujourd'hui : ) Oui mais la je vois un délégué pas un event !? Faut tester aussi si l'event est null avant de l'appeler et on peut aussi mettre une methode virtuel OnMyEvent.
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
32
Désolé Taoetc mais perso j'ai rien compris, tu dérives de quel control et quelle fonction tu rajoutes !?
Messages postés
346
Date d'inscription
lundi 8 septembre 2003
Statut
Membre
Dernière intervention
3 septembre 2007
3
Oui, c vrai , en relisant, c'est pas hyper clair.

Au fait, je n'ai pas vraiment dérivé un controle, je me suis refait un controle date avec dedans un controle datettimepicket et un controle textbox ( j'ai trouvé cela plus simple que d'essayer de modifier le controle datetimepicker d'origine).

donc, j'ai fait mon nouveau user controle tout beau et,avec ce nouveau controle, j'associe un événement Value qui est déclenché quand la valeur de la date change, la , c'est logique.

public
delegate
void ValueChanged();


public
class MaDate : System.Windows.Forms.UserControl


{

.....
et à pluseurs endroit dans ce controle , je déclenche l'événement si la date a changé :
valuechanged();

}
Le probleme est que , si je ne met pas la fonction interceptant l'événement dans les form qui utilise mon controle date , ca plante.
je suis obligé de faire un :
madate.valuechanged += new valueChanged( madate_valuechanged);
public void madate_valuechanged()
{

}

this is plus clair ????
Messages postés
346
Date d'inscription
lundi 8 septembre 2003
Statut
Membre
Dernière intervention
3 septembre 2007
3
il y a bien un event, j'ai oublié de le mettre ,


public
event ValueChanged valueChanged;
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
32
Ca fonctionne ? Tu fais bien:

if ( myEvent != null )
{
myEvent( this, args );
}
Messages postés
346
Date d'inscription
lundi 8 septembre 2003
Statut
Membre
Dernière intervention
3 septembre 2007
3
if( valueChanged != null)
{
valueChanged();
}

les this, et les args, j'en ai pas besoin , donc, j'ai mis cela à la poubelle