Sous C#, dans VS 2022: problème basique sur les évènements
Utilisateur anonyme -
Bonjour
Un problème basique sur les évènements dans un programme WindForm en Visual Studio 2022 Entreprise
J'avais délaissé le dev en C#; Aidez moi
mon code:
// première classe
public partial class Form2 : Form
{
public EventHandler event_momo; // déclaration de l'évènement
// déjà ici, dans debogage, "event_momo = null" mais de type EventHandler ????
....
// plus loin, dans la méthode qui va déclencher l'évènement
EventHandler eh = event_momo;
if ( eh != null )
{ eh.Invoke(this, EventArgs.Empty); }
....
}
........
// seconde classe
public partial class Form1 : Form
{
// pour abonner une méthode à l'évènement
Form2 f2 = new Form2();
f2.event_momo += Maj_fichier;
....
}
Évidemment, je suis ici parce qu'aucun évènement n'est déclenché.
Je n'arrive pas à voir mon erreur.
Dans le debogage de l'appli , je trouve toujours "event_momo" de type "EventHandler" mais de valeur toujours "= null" ( donc idem pour "eh").
Lors de l'exécution de l'appli, le compilateur est sous silence ... mais aucun évènement n'est lancé.
Pourquoi ???? Merci de votre aide.
Dans cette appli plutôt simple, tous les évènements liés à des contrôles (genre click sur bouton ...) fonctionnent à merveille ....
Molo
Windows / Firefox 113.0
- Sous C#, dans VS 2022: problème basique sur les évènements
- Udp vs tcp - Guide
- Apple tv 2021 vs 2022 - Accueil - Guide TV et vidéo
- Samsung a15 vs a16 - Accueil - Téléphones
- X86 vs x64 ✓ - Forum Windows 7
- C'est quoi x86 et x64 ✓ - Forum Windows
2 réponses
Bonjour;
Toujours moi; Ah bon , mes excuses pour le doublon.
je suis toujours en panne sur "évènement" dans Winform de Visual Studio 2022.
Je me suis laisser guider par "Intelltsence" de VS 2022 pour déclarer le délégué et l'évènement dans ma seconde Classe ..... donc pas de raté ...
Idem pour la déclaration de "abonnement à l'évènement" dans la première classe.
Quand le lance le débogage, le compilateur ne "crie" pas ... mais je retrouve toujours la valeur "null" affecté à l'évènement ... donc normal qu'il ne se passe rien.
Mais pourquoi une valeur nulle à cet évènement alors que mon code est propre ???
Je remets mon code modifié:
Dans Namespace :
public delegate void Th_AddEventHandler(object sender, EventArgs e); // public obligatoire
public partial class Form2 : Form
{ ...
public event Th_AddEventHandler event_momo;
....
// lancement de l'évènement: .......
Th_AddEventHandler eh = event_momo;
eh?.Invoke(this, EventArgs.Empty); ......
}
Dans Classe 1:
// abonnement à l'évènement:
......
Form2 Form_nv_adh = new Form2();
Form_nv_adh.event_momo += this.Evenement_Maj_fich; // abonnement à l'évènement
.....
}
Grand merci d'avance à vous.
Molo