我一直在环顾四周,但到目前为止,我还没有看到我在寻找什么。我有一个文本框,它的设计看起来像 VB.Net 程序中的标签,因为标签不能像文本框一样具有所有相同的功能。我希望每个轴上的滚动条仅在实际需要时才显示。字体对不同的字符使用不同的宽度,这不是我能改变的。
这样的滚动条怎么能放在那里?就 VB.Net GUI 设计而言,我有点绿色,所以涉及 30 行代码来做这件事的答案可能会有点难以理解和应用。如果可能的话,我真的需要一些不太复杂的东西。谢谢!
我一直在环顾四周,但到目前为止,我还没有看到我在寻找什么。我有一个文本框,它的设计看起来像 VB.Net 程序中的标签,因为标签不能像文本框一样具有所有相同的功能。我希望每个轴上的滚动条仅在实际需要时才显示。字体对不同的字符使用不同的宽度,这不是我能改变的。
这样的滚动条怎么能放在那里?就 VB.Net GUI 设计而言,我有点绿色,所以涉及 30 行代码来做这件事的答案可能会有点难以理解和应用。如果可能的话,我真的需要一些不太复杂的东西。谢谢!
更新
我Function
用Link
我已经在这里发布的内容给你写了一个。这应该为你做。(请确保对于此测试您Textbox
不是)Textbox6
Textbox1
Private Sub TextBox6_TextChanged(sender As Object, e As EventArgs) Handles TextBox6.TextChanged
If CheckLength(TextBox6.Text) = True Then
TextBox6.ScrollBars = ScrollBars.Vertical
Else
TextBox6.ScrollBars = ScrollBars.None
End If
End Sub
Private Function CheckLength(ByVal longStr As String)
Dim TrueOrFalse As Boolean = False
Dim f As Font = Me.TextBox6.Font
Dim rect As Rectangle = TextBox6.ClientRectangle
Dim charFitted As Integer
Dim linesFitted As Integer
Using g As Graphics = TextBox6.CreateGraphics()
Dim sf As New StringFormat(StringFormatFlags.NoWrap)
sf.LineAlignment = StringAlignment.Center
sf.Alignment = StringAlignment.Near
sf.Trimming = StringTrimming.EllipsisCharacter
sf.FormatFlags = StringFormatFlags.DirectionVertical
g.MeasureString(longStr, f, rect.Size, sf, charFitted, linesFitted)
End Using
If charFitted < longStr.Length Then
TrueOrFalse = True
End If
Return TrueOrFalse
End Function
这将检查整个复选框的长度(多行与否),如果CheckLength
已超过。boolean Function
returns
True
Textbox's Length
警戒