有没有人知道如何显示比列表框更宽的文本,我找到了一些代码,它使用工具提示来显示文本,如果它更宽但不起作用,请帮助
使用VB 2010
Private Sub ListBox2_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox2.MouseMove
Dim ListMousePosition As Point = Me.ListBox2.PointToClient(Me.MousePosition)
Dim itemIndex As Integer = Me.ListBox2.IndexFromPoint(ListMousePosition)
If itemIndex > -1 Then
Dim s As String = Me.ListBox2.Items(itemIndex).ToString()
Dim g As Graphics = Me.ListBox2.CreateGraphics()
If g.MeasureString(s, Me.ListBox2.Font).Width > Me.ListBox2.ClientRectangle.Width Then
Me.ToolTip1.SetToolTip(Me.ListBox2, s)
Else
Me.ToolTip1.SetToolTip(Me.ListBox2, "")
End If
g.Dispose()
End If
End Sub
答案 0 :(得分:1)
如果您已将DataTable
绑定到ListBox
,那么每个项目都是DataRowView
,这就是您在项目上调用ToString
时获得该文本的原因。 ListBox
有一个GetItemText
方法,可以显示特定项目的显示文字。
一旦你告诉我们实际问题是什么,看看有多容易?始终提供所有相关信息。实际发生的事情总是相关的。
答案 1 :(得分:0)
很棒,这里有效的修改后的代码,现在唯一的问题就是工具提示文本的闪烁,无论如何都要停止那个
<input type="file" id="fileInput" style="display:none;" (change)="setFileName()"/>