button_Click 的代码调用与实际点击行为不同

in code invocation of button_Click behaves differently than actually clicking

我正在用 c# winforms 编写程序,并且有一个 TextBox 绑定到 entity framework 对象:

BindingList<Settings> bindingList = BillContext.Settings.Local.ToBindingList();
field6TextBox.DataBindings.Add("Text", bindingList, "CustomerField6");

我创建了一个保存按钮来将更改保存到数据库中:

private void saveCustomerFields_Click(object sender, EventArgs e){
    BillContext.SaveChanges();
}

如果我点击保存按钮,一切正常,但如果我使用我为保存按钮创建的快捷键:

private void field6TextBox_KeyDown(object sender, KeyEventArgs e){
    if(e.KeyData.Equals(Keys.Enter))
        saveCustomerFields_Click(sender, e);
}

private void MainForm_KeyDown(object sender, KeyEventArgs e){
    if(e.KeyData == (Keys.Control | Keys.S)){
        saveCustomerFields_Click(sender, e);
    }
}

虽然调用了保存点击事件处理程序,但 BillContext.Settings.Local 并没有改变,这导致更改没有保存到数据库中。

单击和按钮单击事件句柄的代码调用如何产生不同的结果(考虑到我不使用方法输入)?以及如何让我的快捷键起作用?

尝试替换

saveCustomerFields_Click(sender, e);

saveCustomerFields.PerformClick();