J'ai un contrôle utilisateur composé d'une liste déroulante et d'une étiquette. Dans mon application, je dois activer ou désactiver certains autres contrôles basés sur la valeur sélectionnée dans cette liste déroulante. Comment accéder à l'événement SelectItemChanged à partir de l'application?Evénement Combobox SelectedItemChanged dans un contrôle utilisateur
Répondre
Voir SelectedValueChanged
De toute façon ... aucune de ces options n'est disponible pour définir des propriétés dans l'application car la zone de liste déroulante est encapsulée dans le contrôle utilisateur ... – novacara
Ensuite, vous devrez lier un autre événement ou quelque chose à l'application principale afin de pouvoir mettre à jour autres contrôles – SwDevMan81
Je ne comprends pas ce que vous dites. – novacara
Vous devez envoyer le gestionnaire d'événements qui va gérer l'événement à votre contrôle personnalisé. Quelque chose de similaire au code suivant:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
YourUserControl userctr = new YourUserControl();
//Sent the event handler linked to OnSelectedValueChanged
userctrl.HandleSelectedValueEvent(new EventHandler(OnSelectedValueChanged));
}
private void OnSelectedValueChanged(object sender, EventArgs e)
{
//Do something
}
}
public partial class YourUserControl : UserControl
{
public void HandleSelectedValueEvent(EventHandler handler)
{
this.comboBox1.SelectedIndexChanged += handler;
}
}
Une autre question plus générale serait de savoir comment accéder à un gestionnaire d'événement d'un composant dans un contrôle utilisateur de l'application? – novacara