Controle dérivé et événement

Résolu
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 - 21 juil. 2005 à 14:39
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 - 21 juil. 2005 à 16:35
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

Lutinore Messages postés 3245 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
21 juil. 2005 à 15:35
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.
3
Lutinore Messages postés 3245 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
21 juil. 2005 à 14:53
Désolé Taoetc mais perso j'ai rien compris, tu dérives de quel control et quelle fonction tu rajoutes !?
0
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
21 juil. 2005 à 15:12
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 ????
0
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
21 juil. 2005 à 15:39
il y a bien un event, j'ai oublié de le mettre ,


public
event ValueChanged valueChanged;
0

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

Posez votre question
Lutinore Messages postés 3245 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
21 juil. 2005 à 15:55
Ca fonctionne ? Tu fais bien:

if ( myEvent != null )
{
myEvent( this, args );
}
0
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
21 juil. 2005 à 16:35
if( valueChanged != null)
{
valueChanged();
}

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