如何创建' KeyDown'以编程方式为同一窗体中的多个DataGridview进行事件?

时间:2014-12-30 09:58:33

标签: c# winforms datagridview

当我尝试在c#中为DataGridview创建KeyDown事件时,会显示错误“handler Control_KeyDown already exists in this class”。

我已在KeyDown事件中为DataGridview1创建了DataGridview1_EditingControlShowing事件。

e.Control.KeyDown +=new KeyEventHandler(Control_KeyDown);

我想为DataGridview2创建相同的事件,所以在DataGridview2_EditingControlShowing事件中

e.Control.KeyDown +=new KeyEventHandler(Control_KeyDown); // here the above error shown.So i tried

DataGridview2.KeyPress +=new KeyEventHandler(Control_KeyDown); // it compiles, but event not firing.

1 个答案:

答案 0 :(得分:1)

如果您要处理keypress事件,您的事件处理程序可能是KeyPressEventArgs 对于keydown,您的事件处理程序应为PreviewKeyDownEventArgs

E.g

dataGirdView1.KeyPress += OnDataGirdView1_KeyPress;

private void OnDataGirdView1_KeyPress(object sender, KeyPressEventArgs e)
    {

    }

用于按键事件

 dataGirdView1.PreviewKeyDown  += dataGridView1_PreviewKeyDown;


private void dataGridView1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
    {

    }