【发布时间】:2011-01-26 00:32:23
【问题描述】:
我有一组自定义的用户控件:NavigationBar 和 NavigationItem。
我希望每当用户单击 NavigationItem 中的任何位置时都会触发一个事件。我不知道如何设置。
http://i.stack.imgur.com/ocP2D.jpg
我试过了:
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());
}
}
但该事件仅在用户专门单击 NavigationItem 控件时触发,而不是在他单击图片或文本时触发。 (即 PictureBox 和 Label)。
最好的做法是什么?我想创建一些好的东西,而不是 hacky 代码。谢谢!
【问题讨论】:
标签: c# winforms events user-controls