首先我遇到的一个问题就是一个文本框输入中文名称的。说是输入中文名称,也就是什么都可以输入,但是长度是有所限制的,比如说,一共可以输入40个字符,中文名字,英文字,数字等等,这里中文名字为一类,英文和数字可以看做一类,那么如何判断他输入的混合字符串长度没有超过40呢.
这里有一个方法,这个方法是在别人那儿看的,我只是改进了下,更便用使用罢了。
下面是这个方法的字义:
/// <summary>
/// 判断文本框混合输入长度
/// </summary>
/// <param name="str">要判断的字符串</param>
/// <param name="i">长度</param>
/// <returns></returns>
private bool ChangeByte(string str,int i)
{
byte[] b = Encoding.Default.GetBytes(str);
int m = b.Length;
if (m < i)
{
return true;
}
else
{
return false;
}
}
好了,现在你就可以调用这个方法来判断了。
这个方法返回的是一个bool型的值。
可以这样调用:
private void txtSmallNameCN_KeyPress(object sender, KeyPressEventArgs e)
{
if (ChangeByte(this.txtSmallNameCN.Text.Trim()+e.KeyChar.ToString(),40))
{
//要做的事情
}
}
这是在名为txtSmallNameCN文本框的KeyPress事件中调用这个方法,第一个参数就是要判断的字符串,这里是判断的是txtSmallNameCN这个文本框的字符串,40呢,就是长度。