2008-10-02 115 views
5

我在使用自定義AutoCompleteSource設置的.NET 2 winforms應用程序中使用了一個文本框。無論如何通過代碼我可以增加出現的列表的寬度包含自動完成建議?調整文本框上的自動完成下拉寬度

理想情況下,我想在不增加文本框的寬度的情況下做到這一點,因爲我在UI中的空間很短。

+0

http://stackoverflow.com/questions/4820429/combo-box-drop-down-width-on-suggest可以修改爲TextBox。 – Loathing 2014-08-31 07:27:37

回答

0

嗯,真的沒有直接的辦法。你可能不得不採用子類(在Windows API的意義上)TextBox來做到這一點,即使如此,還是會有很多猜測。

1

不是我所知道的,但是您可以自動調整文本框的大小,使其僅在需要時纔會變寬,而不是像最長的文本一樣寬。

來自實例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 

末級

0

據我所知TextBox類包裝與Windows完全自動完成API。唉,這個事實對於.NET框架的其他部分來說不是「可移植的」。