我在使用自定义AutoCompleteSource设置的.NET 2 winforms应用程序中使用了一个文本框。无论如何通过代码我可以增加出现的列表的宽度包含自动完成建议?调整文本框上的自动完成下拉宽度
理想情况下,我想在不增加文本框的宽度的情况下做到这一点,因为我在UI中的空间很短。
我在使用自定义AutoCompleteSource设置的.NET 2 winforms应用程序中使用了一个文本框。无论如何通过代码我可以增加出现的列表的宽度包含自动完成建议?调整文本框上的自动完成下拉宽度
理想情况下,我想在不增加文本框的宽度的情况下做到这一点,因为我在UI中的空间很短。
嗯,真的没有直接的办法。你可能不得不采用子类(在Windows API的意义上)TextBox来做到这一点,即使如此,还是会有很多猜测。
不是我所知道的,但是您可以自动调整文本框的大小,使其仅在需要时才会变宽,而不是像最长的文本一样宽。
来自实例http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3311429&SiteID=1
Public Class Form1
Private WithEvents T As TextBox
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
T = New TextBox
T.SetBounds(20, 20, 100, 30)
T.Font = New Font("Arial", 12, FontStyle.Regular)
T.Multiline = True
T.Text = "Type Here"
T.SelectAll()
Controls.Add(T)
End Sub
Private Sub T_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles T.TextChanged
Dim Width As Integer = TextRenderer.MeasureText(T.Text, T.Font).Width + 10
Dim Height As Integer = TextRenderer.MeasureText(T.Text, T.Font).Height + 10
T.Width = Width
T.Height = Height
End Sub
末级
据我所知TextBox类包装与Windows完全自动完成API。唉,这个事实对于.NET框架的其他部分来说不是“可移植的”。
http://stackoverflow.com/questions/4820429/combo-box-drop-down-width-on-suggest可以修改为TextBox。 – Loathing 2014-08-31 07:27:37