如何在保存过程完成之前停止多个Ctrl + S.

时间:2017-08-04 09:03:01

标签: c# winforms

当我按 Ctrl + S 保存详细信息并按住按键时,按下按键事件持续触发会导致重复记录输入。有没有办法在我的保存过程完成后让它们激活。

我在吹链中发现了同样的问题 how not to allow multiple keystokes received at one key press?

我已经检查了它的解决方案,但它对我不起作用我必须按多次 S KEY

这是我的代码:

{{1}}

1 个答案:

答案 0 :(得分:1)

正如一条评论指出你可以添加一个标志,像这样:

bool IsSaving;
private void FrmAddBase_KeyDown(object sender, KeyEventArgs e)
{
        if (e.Control && e.KeyCode == Keys.N)
        {
            if (btnAdd.Enabled)
            {
                btnAdd_ItemClick(null, null);
            }
        }
        if (e.Control && e.KeyCode == Keys.S)
        {
            if (btnSave.Enabled)
            {
                if(IsSaving) return;
                IsSaving = true;
                //I guess this is the save process, and its not threaded
                btnSave_ItemClick(null, null);
                IsSaving = false;
            }
        }

}