我在使用自定義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