我在整个WinForms应用程序中都有datagridviews .
我希望能够在我的所有datagridview上添加功能,而不必在每个表单上编写代码 . 一个地方中的一个方法/事件添加到所有现有网格中 .
我想能够右键单击并有一个contextmenu弹出窗口,允许出现具有标准导出选项的通用菜单 .
我知道我可以使用扩展方法添加功能,但我不认为这是针对这种情况的正确方法 .
我想如果我不必从datagridview类派生一个新类并将我的功能添加到派生类,那么我将不得不将我所有的dgv更改为派生的dgv类 .
我是否可以添加或扩展现有的datagridview类,并添加全局通用方法和事件以实现通用弹出菜单
希望这是有道理的....
2 回答
参考这篇文章,它已导出到Excel选项和其他几个,希望这将帮助您 . http://www.codeproject.com/Articles/26263/Extending-the-DataGridView
如果你不想派生自己的DGV类,那么你可以创建一个 helper class ,它可以完成你想要的所有东西 .
你必须使用 register 每个DGV - 不管怎样,必须有扩展功能的连接 . 注册可以在Forms的构造函数中自动完成 .
在其
registerDGV(DataGridview DGV)
方法中,助手类将订阅您想要的所有DGV事件并执行您需要的所有装饰 .这只是一个很小的例子:
如果不需要状态信息,您可能希望生成帮助程序类
static
.