如何关闭大写锁定键

时间:2012-11-29 10:05:01

标签: c# wpf

如何关闭文本框中的大写锁定键。我正在使用WPF表单。

当文本框聚焦时,我想关闭大写锁定。

由于

2 个答案:

答案 0 :(得分:10)

简单,首先添加命名空间

using System.Runtime.InteropServices;

然后在类

中声明
[DllImport("user32.dll")]
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags,
UIntPtr dwExtraInfo);

最后,在textBox_Enter事件中添加此代码

private void textBox1_Enter(object sender, EventArgs e)
    {
        if (Control.IsKeyLocked(Keys.CapsLock)) // Checks Capslock is on
        {
            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);
        }
    }

此代码将关闭Capslock ..我已在enter事件中使用它,您可以根据您的要求添加它!

结帐此链接here

答案 1 :(得分:2)

将此代码用于WPF froms。

private void txt_KeyDown(object sender, KeyEventArgs e)
    {

        if (Keyboard.GetKeyStates(Key.CapsLock) == KeyStates.Toggled) // Checks Capslock is on
        {
            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);
        }

    }