我想重用我编写的一些代码来向 datagridview 添加一些功能。我希望公开默认的 datagridview 属性和事件,所以我不想创建新的自定义组件。所以我尝试编写一个子类,效果很好。但我也想到我可以编写一个独立的实用程序类,它在构造函数中采用一个 datagridview 并以相同的方式设置它。例如
public class
MyGrid
{
private DataGridView m_dg;
public MyGrid(DataGridView dg)
{
m_dg = dg;
m_dg.RowHeadersVisible = false;
m_dg.SortCompare += new DataGridViewSortCompareEventHandler(m_dg_SortCompare);
}
void m_dg_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
{
// do custom sorting here
}
}
所以在我的应用程序启动的某个地方我会打电话
MyGrid g1 = new MyGrid(dataGridView1);
MyGrid g2 = new MyGrid(dataGridView2);
等等。这种方法有什么缺点吗?似乎大部分代码都将是相同的,区别在于您如何实例化扩展网格(将子类控件拖放到表单与拖动普通 datagridview 并调用上面的代码)