おはようございます。vb.netのコンボボックスについて質問があります。
コンボ(DropDownList)でドロップダウンの幅を項目がすべて表示されるよう
自動で表示したいのですが、そういったプロパティが見つかりません。
自動で幅を変えるのはできないのでしょうか?
とりあえずDropDownWidthを大きい値にして表示してますが、項目の長さの最大は決まっていないので・・・
ご存知の方、ご教授ねがいます。
とりあえずこんなかんじかと、本来ここで幅を取得するべきでないかも
しれませんが、「コンボボックスのことはコンボボックスに任せる。」
私は後のメンテナンスのためこんな発想でやっています。
Private Sub ComboBox1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.MouseEnter
Dim i As Integer
Dim margin As Integer = 10
Dim max_Width As New SizeF
Dim MyGraphics As System.Drawing.Graphics
MyGraphics = Me.CreateGraphics
For i = 0 To ComboBox1.Items.Count - 1
max_Width = MyGraphics.MeasureString(ComboBox1.Items.Item(i), ComboBox1.Font)
Next
ComboBox1.DropDownWidth = margin + max_Width.Width
MyGraphics.Dispose()
End Sub
夏の朝も天玉うどんさんご回答ありがとうございます^^
やはりコードを書いて処理するしか方法はなさそうですね
参考にさせていただきます^^
ツイート | ![]() |