首页 > 解决方案 > 如何在 C# (Visual Studio) 中进行热键控制

问题描述

我正在使用 Visual Studio 制作 C# WinForm 应用程序。我使用过 AutoHotKey,AHK 有名为“Hotkey Box”的 GUI 控件(AutoGUI 说“Hotkey Box”)。

当用户单击“热键框”并输入“Ctrl+Alt+F”之类的热键组合时,它会出现在框内。像这样:

在此处输入图像描述

我想使用这种控件,以便用户可以轻松地制作自己的热键。

在此处输入图像描述

如果用户必须选择下拉列表中的每个键,那将是非常不舒服的。

我搜索了谷歌,但只找到了我必须使用msctls_hotkey32的信息。我找不到如何使用msctls_hotkey32.

而且由于我必须在设计器模式下使用该控件来调整位置/宽度/等。如何在设计器模式下使用我的自定义控件?

标签: c#

解决方案


定义您自己的自定义控件,然后在自定义控件上覆盖以下内容,

protected override CreateParams CreateParams
{
  get
  {
    CreateParams cp = base.CreateParams;
    cp.ClassName = "msctls_hotkey32";
    return cp;
  }
}

CreateParams在创建控制句柄时调用


推荐阅读