在代码中,button_Click的调用与实际单击的行为不同
本文关键字:单击 调用 代码 button Click | 更新日期: 2023-09-27 18:00:21
我正在用c#winforms编写一个程序,并且有一个TextBox
绑定到一个实体框架对象:
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);
}
}
虽然调用了save-click事件处理程序,但BillContext.Settings.Local
不会更改,这会导致更改不会保存到数据库中。
点击和在代码中调用按钮点击事件句柄有什么不同的结果(考虑到我没有使用方法输入)?我怎样才能使我的快捷键工作?
尝试替换
saveCustomerFields_Click(sender, e);
带有
saveCustomerFields.PerformClick();