【发布时间】:2013-01-09 17:02:00
【问题描述】:
当我打开 Caps Lock 并重点关注密码控件时,我会得到这个。我想添加我自己的警告。我怎样才能禁用这个?我不介意 P/Invoke 或任何本机代码,但它必须在 C# 中。
【问题讨论】:
-
会@M。 Nasser Javaid 对相关主题帮助的回答? stackoverflow.com/questions/1092808/warn-about-capslock
当我打开 Caps Lock 并重点关注密码控件时,我会得到这个。我想添加我自己的警告。我怎样才能禁用这个?我不介意 P/Invoke 或任何本机代码,但它必须在 C# 中。
【问题讨论】:
在您的表单中,像这样覆盖 WndProc,这将拦截 EM_SHOWBALOONTIP 消息并阻止控件接收它:
protected override void WndProc(ref Message m)
{
if (m.Msg != 0x1503) //EM_SHOWBALOONTIP
base.WndProc(ref m);
}
【讨论】:
以下代码适用于我,在 TextBox 的 KeyDown 事件中:
private void txtPassword_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.CapsLock)
{
e.SuppressKeyPress = true;
}
}
【讨论】: