为现有的DataGridView添加功能
本文关键字:添加 功能 DataGridView | 更新日期: 2023-09-27 18:09:16
我在整个WinForms应用程序中都有datagridviews
我希望能够添加功能到我所有的datagridview必须在每个表单上编写代码。一个方法/事件在一个地方添加到所有现有的网格。
我希望能够右键单击,并有一个上下文菜单弹出,它允许一个通用的菜单出现,其中有标准的导出选项。
我知道我可以使用扩展方法添加功能,但我不认为这是适合这种情况的正确方法。
我希望如果我不需要从datagridview类派生一个新类,并将我的功能添加到派生类,因为我将不得不将所有的dgv更改为派生的dgv类。
我可以添加或扩展现有的datagridview类,并添加全局泛型方法和事件来实现泛型弹出菜单吗
希望这是有意义的....
如果您不想派生您自己的DGV类,那么您可以创建一个助手类,它可以做您想要它做的所有事情。
您将不得不注册每个DGV到它-无论如何必须有连接到扩展功能毕竟。注册可以在form的构造函数中自动完成。
在它的registerDGV(DataGridview DGV)
方法中,helper类将订阅所有你想要的DGV事件,并完成所有你需要的装饰。
这只是一个很小的例子:
public Form1()
{
InitializeComponent();
DGVhelper.registerDGV(dataGridView1);
}
DGVhelperClass DGVhelper= new DGVhelperClass ();
class DGVhelperClass
{
public void registerDGV(DataGridView DGV)
{
DGV.MouseDown += DGV_MouseDown;
//...
DGV.BackgroundColor = Color.LightSlateGray;
//..
}
void DGV_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right) MessageBox.Show("just", "for show");
}
}
如果helper类不需要状态信息,则可以将其设置为static
。