0

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

4

2 回答 2

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);
        }
    }
}
于 2013-02-16T01:48:28.793 回答
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);
        }

    }

您的意见和意见将不胜感激。

于 2013-02-16T09:39:14.780 回答