カスタムAutoCompleteSourceでセットアップされた.NET 2 winformsアプリでテキストボックスを使用しています。オートコンプリートの提案を含む表示されるリストの幅を広げることができるコードはありますか?
理想的には、UI のスペースが不足しているため、テキスト ボックスの幅を広げずにこれを行いたいと考えています。
カスタムAutoCompleteSourceでセットアップされた.NET 2 winformsアプリでテキストボックスを使用しています。オートコンプリートの提案を含む表示されるリストの幅を広げることができるコードはありますか?
理想的には、UI のスペースが不足しているため、テキスト ボックスの幅を広げずにこれを行いたいと考えています。
私が知っていることではありませんが、テキストボックスのサイズを自動設定して、常に最長のテキストと同じ幅にするのではなく、必要なときにだけ幅を広くすることができます。
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
エンドクラス
うーん、実際には直接的な方法はありません。これを行うには、おそらく (Windows API の意味で) TextBox をサブクラス化する必要があり、その場合でも多くの推測が必要になります。
私の知る限り、TextBox クラスは、Windows に付属する完全な AutoComplete API をラップしています。残念ながら、この事実は .NET フレームワークの他の部分に "移植可能" ではありません。