我构建了一个自定义组件,其中基本上有一个图片框和标签。在父表单中,我希望能够检测到它何时被单击。标准 .click 事件似乎不起作用,但我以前从未使用过事件,所以不确定我是否正确使用它们。这是我正在使用的代码(在父级中)尝试使其识别点击:
Item aItem = new Item();
aItem.Icon = ItemImage;
aItem.Title = Title;
aItem.Click += new EventHandler(ItemClicked);
aItem.Filename = File;
这是它调用的方法:
public void ItemClicked(Object sender, EventArgs e)
{
MessageBox.Show("Item Clicked!");
}
此代码永远不会触发。我是否需要在组件中添加任何内容,或者我只是做错了?
干杯
最佳答案
对啊,我终于解决了。 Tejs 的回复让我更加困惑,所以这就是我所做的。
在我的用户控件中,我发生了以下事件:
公共(public)事件EventHandler Clicked;
然后我有一个单击图像时的事件(仍在 UserControl 中),我只是调用了 Clicked 事件:
private void imgItem_Click(object sender, EventArgs e)
{
Clicked(this, e);
}
然后在我的父表单中,当我创建该对象时,我有以下内容:
Item aItem = new Item();
aItem.Clicked += new EventHandler(ItemClicked);
void ItemClicked(object sender, EventArgs e)
{
MessageBox.Show("Clicked!");
}
关于c# - 自定义组件点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5904470/