打开/关闭CapsLock-在表单应用程序启动期间

本文关键字:应用程序 启动 表单 关闭 CapsLock- 打开 | 更新日期: 2023-09-27 17:59:31

我需要帮助编写C#表单应用程序,在启动应用程序期间,基于配置文件中的条目。键盘中的CAPSLOCK应为ON/OFF。

打开/关闭CapsLock-在表单应用程序启动期间

不要弄乱CapsLock键。永远不会——这是非常糟糕的用户体验。

相反,您应该在相应的文本框上处理KeyPress事件,并根据您的设置将字符转换为大写或小写。像这样:

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.KeyChar = char.ToUpper(e.KeyChar);
        }
    }
}

基于各种来源的进一步分析和深入研究下面是我为解决我之前发布的问题而编码的代码片段

    /// <summary>
    /// Enabling or Disabling CAPSLOCK button.
    /// Based on value retirevied from settings and also present CAPSLOCK button status.
    /// </summary>
    public void CharacterCasing()
    {
        if (settings.IsCapsLockOn ^ Console.CapsLock)
        {
            const int KEYEVENTF_EXTENDEDKEY = 0x1;
            const int KEYEVENTF_KEYUP = 0x2;
            keybd_event(0x14, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0);
            keybd_event(0x14, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, (UIntPtr)0);
        }
    }

非常感谢您的意见和建议。