Ich habe den folgenden Code, Benutzer neue Zeilen zu schreiben in einem Memo-Texteditor verhindern gemeint:System.Windows.Forms.Keys.HasFlag verhalten weirdly
private void m_commentMemoEdit_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData.HasFlag(Keys.Enter))
{
e.SuppressKeyPress = true;
}
}
Es ist wirklich nicht daran hindert, Enter eingefügt wird , aber seltsamerweise verhindert es, dass andere Schlüssel eingefügt werden. Bisher haben wir entdeckt, dass die Schlüssel "O", "M", "/" und "-" auch "gefangen" werden.
Update: Der folgende Code tut, was ich brauche:
private void m_commentMemoEdit_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyValue == (int)Keys.Return)
{
e.SuppressKeyPress = true;
}
}
Aber ich verstehe immer noch nicht der frühere Code nicht funktioniert und das tut.
Ich habe die System.Windows.Forms.Keys
Enum angeschaut, aber habe keine Hinweise gefunden (obwohl ich sagen muss, dass dies eine seltsam konstruierte enum ist). Kann mir jemand erklären, warum das passiert?