J'ai un ensemble personnalisé de UserControls: NavigationBar et NavigationItem.Comment créer un événement personnalisé?
Je voudrais que chaque fois que l'utilisateur clique n'importe où dans le NavigationItem, un événement est déclenché. Je ne sais pas comment mettre ça en place.
http://i.stack.imgur.com/ocP2D.jpg
J'ai essayé ceci:
public partial class NavigationBar : UserControl
{
public NavigationBar()
{
InitializeComponent();
SetupEvents();
}
public List<NavigationItem> NavigationItems { private get; set; }
public NavigationItem SelectedItem { get; set; }
private void SetupEvents()
{
navigationItem1.Click += new EventHandler(navigationItemClick);
}
void navigationItemClick(object sender, EventArgs e)
{
MessageBox.Show("Clicked on " + sender.ToString());
}
}
Mais cet événement ne se déclenche que lorsque l'utilisateur clique spécifiquement sur le contrôle NavigationItem, mais pas quand il clique sur l'image ou du texte. (Ce sont PictureBox et Label).
Quel serait le meilleur plan d'action? Je voudrais créer quelque chose de bien, pas de code hacky. Merci!
Dans quelle classe puis-je créer ce nouvel événement? –
J'ai ajouté EventHandler dans la classe NavigationItem.cs et le concepteur de formulaire ne trouve pas cet événement particulier. Aucune suggestion? –
@Sergio: Vous pouvez attacher le gestionnaire d'événements dans le code derrière. –