如何关闭WPF窗体中文本框的大写锁定键。
当文本框被聚焦时,我希望关闭大写锁定键。
谢谢。
如何关闭WPF窗体中文本框的大写锁定键。
当文本框被聚焦时,我希望关闭大写锁定键。
谢谢。
很容易,首先添加命名空间
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);
}
}
这段代码会关闭大写锁定键.. 我在输入事件中使用了它,你可以根据你的需求添加它!
查看这个链接这里
使用此代码适用于WPF表单。
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);
}
}