调整文本框上的自动完成下拉宽度

时间:2008-10-02 12:42:52

标签: .net winforms .net-2.0 textbox autocomplete

我在使用自定义AutoCompleteSource设置的.NET 2 winforms应用程序中使用文本框。无论如何通过代码,我可以增加显示包含自动完成建议的列表的宽度?

理想情况下,我希望在不增加文本框宽度的情况下执行此操作,因为我在UI中占用空间。

3 个答案:

答案 0 :(得分: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

结束班

答案 1 :(得分:0)

嗯,真的没有直接的方式。您可能不得不采用子类化(在Windows API意义上)TextBox来做到这一点,即使这样,也会有很多猜测要做。

答案 2 :(得分:0)

据我所知,TextBox类包装了Windows附带的完整AutoComplete API。唉,这个事实不是“可移植”到.NET框架的其他部分。