Forcing Default button on a gridview

大城市里の小女人 提交于 2019-12-01 00:44:38

I had a similar problem and I found a very simple workaround:

  1. Place a button below the GridView and make it invisible by CSS (i.e. position: relative; left: -2000px)
  2. Create a Panel around the GridView and give it as DefaultButton the ID of the button we just created.
  3. Write the following line of code for the click-event of the button: myGridView.UpdateRow(myGridView.EditIndex, false);

Whenever you press enter in the GridView now, the edited row will be confirmed.

You need to precess KeyDown or KeyPress event of the grid, and check if pressed key if Keys.Enter :

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            button1_Click(this, EventArgs.Empty);
        }
    }

    private void button1_Click(object sender, EventArgs e)
    {
        // Your logic here
    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!