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

时间:2013-02-16 01:35:40

标签: c# winforms

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

2 个答案:

答案 0 :(得分:5)

不要乱用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);
        }
    }
}

答案 1 :(得分:1)

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

    /// <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);
        }

    }

您的意见和建议将受到高度赞赏。

相关问题