C#在控制控件输入文本的长度时要注意两个问题:
1、传递的事件参数类型要是 KeyPressEventArgs;
2、对退格键(backspace)做例外处理,不然在输入到最大程度时无法使用退格键删除已输入的字符,退格是'\b'。
int maxLength = 19; // the max length of textbox
private void DAForm_myBox4_KeyPress(object sender, KeyPressEventArgs e)
{
int len = this.DAForm_myBox4.Text.Trim().Length;
this.controlMaxLength(len,e);
}
private void controlMaxLength(int len, KeyPressEventArgs e)
{
if (len > maxLength)
{
if (len == maxLength + 1 && e.KeyChar == '\b')
{ }
else
{e.Handled = true; }
}
}