c# - 自定义组件点击事件

标签 c# .net winforms

我构建了一个自定义组件,其中基本上有一个图片框和标签。在父表单中,我希望能够检测到它何时被单击。标准 .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/

相关文章:

.net - TFS Build 不会下载丢失的 NuGet 包

c# - 无法连接到我的 Linux 服务器 MySQL DB

c# - 在 C# Windows 窗体中使用 OpenFileDialog 打开 Excel 文件

c# - 获取组件的父表单

c# - 使用 CUI 测试生成器测试 winform 应用程序上的接受按钮

c# - 循环遍历 iTextsharp 中的字典项

c# - 规范化 .Skip() 和 .Take() 调用链

c# - XmlSerializer - 忽略继承的不可序列化成员

c# - 有人使用 CLI 后端为 gcc 编译器编译 lib x264 吗?

c# - 如何在 c# 中创建自定义操作并将其绑定(bind)到 wix 设置项目