我在一个tabcontrol中有10个datagridview,它们需要相同的附加功能(例如,复制/粘贴)进行编码。代码相当长,无法涵盖这些内容,因此,我试图将使用的重复代码量减到最少。
我当前的方法是从表单项事件(例如KeyDown)中获取“对象发送者”,并将其传递给单个函数处理程序方法,然后将其转换为“ DataGridView”对象。然后,可以使用该DataGridView对象修改任何单元格选择和值。
将“对象”投射到“ DataGridView”似乎很粗糙。这会在以后引起任何引用问题吗?这会带来任何奇怪的限制吗?是否有更“广泛使用”的编程实践来完成此任务?
功能处理
private void dgv01_KeyDown(object sender, KeyEventArgs e)
{
dgv_KeyDown_Handler(sender, e);
}
private void dgv02_KeyDown_1(object sender, KeyEventArgs e)
{
dgv_KeyDown_Handler(sender, e);
}
private void dgv03_KeyDown
....
private void dgv_KeyDown_Handler(object sender, KeyEventArgs e)
{
DataGridView dgvHandler = (DataGridView)sender;
// Handles ctrl+c/ctrl+v using dgvHandler to modify cell values
}