Настройка ширины выпадающего списка для автозаполнения в текстовом поле - PullRequest
5 голосов
/ 02 октября 2008

Я использую текстовое поле в WinNET-приложении .NET 2, которое настраивается с помощью пользовательского AutoCompleteSource. Есть ли в любом случае через код, который я могу увеличить ширину списка, который содержит предложения автозаполнения?

В идеале я хотел бы сделать это, не увеличивая ширину текстового поля, поскольку у меня недостаточно места в пользовательском интерфейсе.

Ответы [ 3 ]

1 голос
/ 02 октября 2008

Не то, что я знаю, но вы можете автоматически изменять размер текстового поля, чтобы оно было только широким, когда это необходимо, а не всегда таким широким, как самый длинный текст.

Пример из 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 голосов
/ 03 октября 2008

Насколько я знаю, класс TextBox оборачивает полный API автозаполнения, который поставляется с Windows. Увы, этот факт не «переносим» к другим частям .NET Framework.

0 голосов
/ 02 октября 2008

Хм, прямого пути нет. Вам, вероятно, придется прибегнуть к подклассам (в смысле Windows API) TextBox, чтобы сделать это, и даже тогда было бы много догадок.

...