コンボボックスのドロップダウンの幅について


一休  2005-05-27 02:42:18  No: 90098

おはようございます。vb.netのコンボボックスについて質問があります。

コンボ(DropDownList)でドロップダウンの幅を項目がすべて表示されるよう
自動で表示したいのですが、そういったプロパティが見つかりません。
自動で幅を変えるのはできないのでしょうか?

とりあえずDropDownWidthを大きい値にして表示してますが、項目の長さの最大は決まっていないので・・・

ご存知の方、ご教授ねがいます。


夏の朝も天玉うどん  2005-05-28 15:44:54  No: 90099

とりあえずこんなかんじかと、本来ここで幅を取得するべきでないかも
しれませんが、「コンボボックスのことはコンボボックスに任せる。」
私は後のメンテナンスのためこんな発想でやっています。
    
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


一休  2005-05-31 20:33:20  No: 90100

夏の朝も天玉うどんさんご回答ありがとうございます^^

やはりコードを書いて処理するしか方法はなさそうですね

参考にさせていただきます^^


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加