C#在一个方法中组合了2个事件

muh*_*han 5 .net c# winforms

我对编程比较陌生,你很快就会看到...
我有2个事件,执行相同的代码.我目前有一个datagridview的伪代码:

private void dgv_CellEnter(object sender, DataGridViewCellEventArgs e)  
{
   string abc = "abc";
}

private void dgv_CellClick(object sender, DataGridViewCellEventArgs e)  
{
   string abc = "abc";
}
Run Code Online (Sandbox Code Playgroud)

有没有办法将它合并为一个事件?有一个更好的方法吗?

And*_*erd 7

为什么不只有一个方法并将其映射到两个事件?

private void dgv_CellEvent(object sender, DataGridViewCellEventArgs e)
{
    string abc = "123";
}

// In the event mapping

dgv.CellEnter += dgv_CellEvent;
dgv.CellClick += dgv_CellEvent;
Run Code Online (Sandbox Code Playgroud)


Yet*_*per 6

那么快速回答是肯定的.将方法的内容放在自己的方法中,然后让onclick事件调用该方法.如果需要更改代码,这将只为您提供一个更新代码的位置.

有100种不同的方法可以做到这一点,这是最简单的问题.

所以创建这样的东西:

protected void MyNewMethod()
{
    string abc = "123";
}
Run Code Online (Sandbox Code Playgroud)

然后你的其他方法会像这样调用它:

private void dgv_CellEnter(object sender, DataGridViewCellEventArgs e)
{ 
    MyNewMethod(); 
}

private void dgv_CellClick(object sender, DataGridViewCellEventArgs e)
{ 
    MyNewMethod(); 
}
Run Code Online (Sandbox Code Playgroud)

选项2

只需从标记中调用相同的方法即可.您实际上只需要其中一种方法,并且标记中的事件可以调用相同的方法.