events - 观察通过 Winforms UserControl 实例创建的事件

标签 events datagridview user-controls winforms

在我的 winforms 应用程序中,我有一个包含 DataGridView 的 UserControl。当需要时,我实例化此 UserControl 并将其加载到主窗体 (frmMain) 的面板中。我的问题是弄清楚如何响应或监听我的 UC 的 DataGridView 中引发的事件。例如,我想在主窗体中处理 DataGridView 的 CellDoubleClick 事件,而不是通过 UC。

这可能吗?我曾想过在双击网格中的单元格时更新属性,然后让我的主窗体在该属性更改时执行任何操作 - 因此我想到使用 INotifyPropertyChanged。然而,我不太清楚如何在 m 场景中使用它,并且非常感谢在这方面的一些帮助,或者如果有人可以建议替代解决方案。

非常感谢!

最佳答案

您的用户控件必须封装一些逻辑,因此如果您想按照您所描述的方式处理控件中的 DataGridView 事件,您可能会遗漏用户控件和封装的一些内容。从技术上讲,有两种方法可以做到这一点:

  1. 在 DataGridView 类型的用户控件中创建一个公共(public)属性。
  2. 制作一个事件包装器。您需要在用户控件中创建一个事件,该事件在 DataGridView CellDoubleClick(或任何)被触发时引发,并且在您的调用代码中您将处理此事件包装器。

第二种方法更符合逻辑,因为控件的内部逻辑被封装起来,并且您可以为组件的最终用户提供比 CellDoubleClidk 或其他更具逻辑性和更有意义的事件。

关于events - 观察通过 Winforms UserControl 实例创建的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1577207/

相关文章:

events - 在 XML-RPC 或 SOAP 中实现回调

c# - 将 DataGridViewRow 转换为 DataRow

vb.net - 执行 SQL 命令后刷新 DataGridView?

asp.net - 属性中的 UserControl 默认值

angular - 跟踪滚动位置并通知其他组件

c# - 使用 Rhino Mocks 从模拟/ stub 中引发事件

javascript - 有没有一种有效的方法来获得 HTML DOM 元素属性更改的通知?

winforms - 如何在 WinForm DataGridView 事件处理程序中引用列名而不是 e.ColumnIndex?

c# - 将值绑定(bind)到用户控件时出现问题

wpf - MVVM + UserControl + 依赖属性