有一个Textbox,长度为30Pixel.从数据库NText字段中读取一个字符串,该字符串中包含繁体中文,或简体中文,或日文,或大写字母,或小写字母,或数字等等.
怎样截取该字符串使它填入Textbox长度刚好?
怎样截取该字符串使它填入Textbox长度刚好?
解决方案 »
- bs中上传附件的进度条怎么做
- textbox 接受传过来的值
- Ajax中禁用后退按钮!急
- 强制结束Excel进程的问题(真的邪了)
- pdg格式的文件用什么打开?
- 急,急,请问这是怎么引起的?如何解决?请大家帮帮忙
- asp.net版的高手们进来讨论一下这样的东东是怎么设计出来的!知道的给一个设计思路本人也想开发一个!
- 众人拾柴火焰高----如何构建安全的Web服务器
- 比较难的问题,专家都进来看看:局部刷新的问题
- 新手初来乍到 忘老鸟介绍下这么写简历???给模板就行啊!!!!!!!!!!
- .NET 的XML Web Services与组件开发技术,欢迎进来讨论...
- datagrid或datalist绑定数据的时候,如何对数据库中的数据进行操作。
得到实际长度(一个中文占2个位置),但还是会有一定问题,因为在UTF-8编码中,一个中文的宽度并不等于两个英文的长度。
再测一下一个字符的长度
应该可以的
以下是我根据实际长度的比较而写的一段,基本还可以,但像 v192(魔渡众生)说的一样,还是有一点差别:
Private Function GetStrLength(ByVal str As string, ByVal length As single) As String
dim firstB As string
If Microsoft.VisualBasic.Trim(str) = "" or length = 0 Then
Return ""
End If
dim i as integer = 0
dim asc as integer
Do While length > 0
i = i + 1
firstB = Microsoft.VisualBasic.Mid(str, i, 1)
asc = Microsoft.VisualBasic.AscW(firstB)
if asc < 0 or asc > 255 then
length = length - 2.55
else
if asc >= 65 and asc <= 90 then
length= length - 1.5
else
length = length - 1
end if
end if
Loop
Return Microsoft.VisualBasic.Left(str,i)
End Function