我们知道在C#中TextBox控件对输入字符的控制有keypresskeyup和keydown事件来使用但大家也看到了这几个事件对输入字符的控制都有一定的缺陷如果你使用中文输入法那么很多原来你不希望输入的字符也可以输入进去这几天做程序的时候就碰到了这个问题我的解决思路很简单既然这三个事件不再起作用那么我就使用了TextBox控件中时刻能发生的TextChanged事件以期望在这个事件中作些东西以达到控制字符的目的废话就不多说了我将控制输入字符为数字的代码粘贴出来希望大家多指正如果能对你有益的话我就更happy了 private SystemWindowsFormsTextBox textBox; private string text; public Form() { text = textBoxText; } private void textBox_TextChanged(object sender SystemEventArgs e) { int len = textLength; if(len < textBoxTextLength) { int index = textBoxTextIndexOf(text); char c = (textBoxTextRemove(indextextLength))[]; if(cCompareTo() < ||cCompareTo() >) { textBoxText = text; textBoxSelectionStart = textLength; } } text = textBoxText; } |