Vb.net 强制gridview上的默认按钮

Vb.net 强制gridview上的默认按钮,vb.net,button,default,Vb.net,Button,Default,我使用gridview和模板来显示和编辑sql数据库中的一些信息 当我编辑并更改该行中的数据,然后单击“输入”时,它会自动按下页面上最高的按钮,该按钮使用“提交到服务器”设置为true,这意味着它将尝试删除而不是更新 我已经尝试在gridview周围设置一个面板,并将面板的默认按钮设置为“updatebutton”,但它不允许这样做,因为它无法“看到”按钮。您需要处理网格的KeyDown或KeyPress事件,并检查是否按了键。输入: public partial class Form1 : F

我使用gridview和模板来显示和编辑sql数据库中的一些信息

当我编辑并更改该行中的数据,然后单击“输入”时,它会自动按下页面上最高的按钮,该按钮使用“提交到服务器”设置为true,这意味着它将尝试删除而不是更新


我已经尝试在gridview周围设置一个面板,并将面板的默认按钮设置为“updatebutton”,但它不允许这样做,因为它无法“看到”按钮。

您需要处理网格的KeyDown或KeyPress事件,并检查是否按了键。输入:

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
    }
}

我有一个类似的问题,我发现了一个非常简单的解决方法:

  • 在GridView下方放置一个按钮,并通过CSS使其不可见(即位置:相对;左侧:-2000px)
  • 在GridView周围创建一个面板,并将我们刚刚创建的按钮的ID作为DefaultButton提供给它
  • 为按钮的单击事件编写以下代码行: myGridView.UpdateRow(myGridView.EditIndex,false)
    无论何时在GridView中按enter键,编辑的行都将被确认。

    非常好的技巧。您还可以将按钮包装在
    中以隐藏它,而不破坏回发处理程序。我同意显示无。