【问题标题】:Can the AcceptButton property on a C# winform be changed from the Enter key to using Ctrl+Enter without using a TextBox?C# winform 上的 AcceptButton 属性是否可以在不使用 TextBox 的情况下从 Enter 键更改为使用 Ctrl+Enter?
【发布时间】:2019-07-24 18:43:31
【问题描述】:

我正在对我不久前编写的程序进行更新(感谢大家帮助我解决上一个问题!),但我遇到了麻烦。我想这样做,以便我的程序将使用 CTRL+ENTER 将其数据提交到 SharePoint 列表,而无需 TextBox。

我已经搜索了几个小时的 Google 搜索,但没有找到任何真正为我提供我想要的功能的东西。我不喜欢在 WinForm 上使用 AcceptButton 功能,所以欢迎提出任何建议来完成这项工作。

我尝试了此代码的各种变体以使其配合,但根本没有成功。

if (e.SuppressKeyPress = (e.KeyData == (Keys.Control | Keys.Enter)))
{
SubmitBtn.Focus();
SubmitBtn.PerformClick();
}

我只需要程序在按下 CTRL+ENTER 后单击一个按钮。按钮本身会完成其余的工作。

【问题讨论】:

  • 我认为问题来自不正确的 if 条件,应该更像:if(e.KeyData == (Keys.Control | Keys.Enter))
  • 可以编辑您的问题以添加表单代码吗?
  • @YouneS 不幸的是,这也没有用。
  • @Seabass77 你想看什么代码?大约有 300 行,其中一些包含我公司的敏感数据,所以添加它有点太多了。
  • @BlueJae if 条件中有额外的代码。额外的代码是 (e.SuppressKeyPress = ...)

标签: c# winforms keyboard-shortcuts desktop-application visual-studio-2019


【解决方案1】:

实际上,经过大量的试验、错误和拼接来自大量不同论坛的样本后,我确实设法让它工作。这就是最终为我工作的东西。如果有任何修改可以使其更加精简,请随时告诉我。

private void SubmitShortcut(object sender, KeyEventArgs e)
        {
            if(e.KeyCode == Keys.Enter && e.Control)
            {
                e.Handled = true;
                SubmitBtn_Click(sender, e);
            }
            else if (e.KeyCode != Keys.Enter && e.Control)
            {
                e.Handled = false;
            }
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多