C#大佬帮我看看这一个问题
本帖最后由 zoenbo 于 2021-5-1 13:44 编辑<TextBox Width="340" Height="30" MaxLength="30" Text="{Binding Title}" VerticalContentAlignment="Center"/>
这是用在Microsoft Visual C# / Basic .NET(桌面程序)里的,MaxLength我想让它实现最多汉字30个,英文60个字符,这个怎么实现呢?在线等待... 注册文本改变事件,看内容超过没 langu 发表于 2021-4-30 21:45
注册文本改变事件,看内容超过没
我完全不懂这个.NET,目前这个MaxLength要是设30,英文和汉字都是30个,超出内容不会显示。 那应该用的是utf-8编码,可能要到业务里控制 Rt39 发表于 2021-4-30 22:06
那应该用的是utf-8编码,可能要到业务里控制
大佬,有没有解决方法呢?百度上一点相关的都没。 MaxLength绑定变量,使最大长度可以自己控制,如MaxLength="{Binding MaxLength}".
然后在编辑框的改变事件中判断,如果有中文就MaxLength=30;否则就MaxLength=60; gohopo 发表于 2021-4-30 22:13
MaxLength绑定变量,使最大长度可以自己控制,如MaxLength="{Binding MaxLength}".
然后在编辑框的改变事件 ...
大佬,能帮我写个判断么?就这个就困扰了五六个小时了,没找到解决方法。 这需求,应该可以混合中英文吧。。。只能在文本改变事件里判断了,用正则判断中文 <TextBox Name="textBox" Width="340" Height="30"VerticalAlignment="Center" TextChanged="textBox_TextChanged" ></TextBox>
private void textBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (textBox.Text.Trim() != null)
{
if (Convert.ToInt32(Convert.ToChar(textBox.Text.Substring(0, 1))) < Convert.ToInt32(Convert.ToChar(128)))
{
textBox.MaxLength = 10;
}
else
{
textBox.MaxLength = 5;
}
}
}
用正则表达式 如果是英文和字符就限制60个否则限制30个汉字
var pattern1 = @"^{5,30}$"//最小5位最大30位的数字+字母 如果需要特殊字符自己在加
然后Match一下 System.Text.RegularExpressions.Regex.IsMatch(你传进来的字符串, pattern1);
页:
[1]
2