我試圖阻止用戶在按鍵事件中輸入單引號。看起來像一個簡單的事情。我只需要與KeyChar合作。當我轉換爲char並與Keys.Right進行比較(右箭頭)時,由於一些奇怪的原因,單引號是匹配的。我對此感到困惑。任何想法,爲什麼一個單引號將是一個右箭頭匹配?我看到的所有例子都只是做這個相同的演員來比較鍵。C#Winforms Keys.Right顯示等於單引號?
Func<char, bool> IsEditingKey = k =>
{
if (k == (char)Keys.Left || k == (char)Keys.Right || k == (char)Keys.Delete || k == (char)Keys.Back)
{
return true;
}
return false;
};
如果我傳入單引號('),當k ==(char)Keys.Right測試發生時,它會返回true。我現在可能是一個演員問題,但我會如何比較以確保它確實是正確的箭頭而不是單引號(')?
謝謝!我最初嘗試了keydown,但是在我使用的infragistics控件中存在一些bug,其中e.handled = true並沒有壓制它。當我在按鍵事件上做它,而不是由於某種原因它的工作。 – KingOfHypocrites 2012-04-20 01:52:36
這是因爲KeyDown的e.Handled不抑制按鍵。 e.SuppressKeyPress屬性。 – 2012-04-20 01:57:54