我需要帮助编写一个C#表单应用程序,其中在应用程序启动期间基于配置文件中的条目。键盘中的CAPSLOCK应该是ON / OFF。
答案 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);
}
}
您的意见和建议将受到高度赞赏。