我有以下代码,旨在防止用户在备忘录文本编辑器中编写换行符:
private void m_commentMemoEdit_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData.HasFlag(Keys.Enter))
{
e.SuppressKeyPress = true;
}
}
它确实阻止了 Enter 被插入,但奇怪的是它也阻止了其他键被插入。到目前为止,我们发现键:'O'、'M'、'/' 和 '-' 也被“捕获”了。
更新:以下代码可以满足我的需要:
private void m_commentMemoEdit_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == (int)Keys.Return)
{
e.SuppressKeyPress = true;
}
}
但是我仍然不明白以前的代码不起作用,而这确实起作用。
我查看了System.Windows.Forms.Keys
枚举,但没有找到任何线索(尽管我必须说这是一个构造奇特的枚举)。谁能解释为什么会这样?