2011-02-01 82 views
4

我想開發一個限制特殊符號如%的文本框。我使用文本框的keydown事件來限制'%'。我已經使用的代碼作爲如何在wpf中限制文本框中的特殊符號%?

if(Keyboard.Modifiers == ModifierKeys.Shift && e.key == key.D5)  
{  
    e.handle=true;  
    return;  
} 

,當我在MVVM架構實現這一點,我依賴屬性,當我轉換成systemkey字符串格式,承認只有轉變爲一個鍵,D5作爲另一個問題。

如何識別%符號?

回答

4

你可以聽PreviewTextInput事件而不是KeyDownEvent:

myTextBox.PreviewTextInput += PreviewTextInputHandler; 

然後:

private void PreviewTextInputHandler(Object sender, System.Windows.Input.TextCompositionEventArgs e) 
{ 
    e.Handled = !AreAllValidChars(e.Text); 
} 

這是一個這樣的功能我在我的應用程序使用,你將不得不調整它稍微測試一下正確的字符,但是你知道該怎麼做。

爲獲取%卡拉科特,那麼你只需要編寫類似:

if (e.Text == '%') ...;