VB.NET中,在一个宽度设定为200的Label中,传入超长的字符串,当显示不下的时候如何只显示字符串最中间的部分。
1设定一个长度固定为200的Label如图所示
2点击按钮传入超长的字符串
3但是显示只是字符串的从最左边开始到Label能满足的长度
提问:甲方爸爸要求显示这串字符串最中间的部分,按照Label能满足的长度显示,帮帮我吧
VB.NET中,在一个宽度设定为200的Label中,传入超长的字符串,当显示不下的时候如何只显示字符串最中间的部分。
1设定一个长度固定为200的Label如图所示
提问:甲方爸爸要求显示这串字符串最中间的部分,按照Label能满足的长度显示,帮帮我吧
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Str As String = "abcdefghijklmnopqrstuvwxyz1234567890"
Dim g As Graphics = Label1.CreateGraphics()
Dim s As SizeF = g.MeasureString(Str, Label1.Font)
'如果字符串超过了label的宽度
If s.Width > Label1.Width Then
Dim visibleChars As Integer = CInt(Math.Floor((Str.Length * Label1.Width) / s.Width))
Dim startIndex As Integer = (Str.Length - visibleChars) / 2
Label1.Text = Str.Substring(startIndex, visibleChars)
Else
Label1.Text = Str
End If
End Sub