none
如何更改combobox中item的间距? RRS feed

  • 问题

  • 大家都注意到,在combobox组合框控件中加入几个项,比如:

    item1

    item2

    item3

    item4

    item5

    item6

    在这个界面中,这些项上下之间的间距还是比较美观的,但在我们的程序中,在运行时,combobox中这些列表项之间的距离特别近,很不美观,我试了调了itemheigh属性,但不行,请哪位高手指点一下,怎样调整这些项的间距?

    2008年12月6日 3:46

答案

  • Code Snippet
     ComboBox1.DrawMode = DrawMode.OwnerDrawVariable
            ComboBox1.ItemHeight = 50
            ComboBox1.Items.Clear()
           
            ComboBox1.Items.Add(1)
            ComboBox1.Items.Add(2)
            ComboBox1.Items.Add(3)

     

     

     

     

    Code Snippet


        Private Sub ComboBox1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ComboBox1.DrawItem

            e.DrawBackground()

            Dim myBrush As Brush
            myBrush = Brushes.Red

            e.Graphics.DrawString(ComboBox1.Items(e.Index), e.Font, myBrush, New RectangleF(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height))

            e.DrawFocusRectangle()

        End Sub

     

     

     

    2008年12月9日 3:16
    版主

全部回复

  • 怎么没人回复?还请各位MVP帮忙解决一下.。

    2008年12月8日 3:47
  •  

    自己写控件或第三方控件可以做到,vb.net自带的combobox没有这个属性设置
    2008年12月8日 21:28
  •  rego 写:

     

    自己写控件或第三方控件可以做到,vb.net自带的combobox没有这个属性设置

     

     

    我觉得不对,肯定能设置,只是我没找到,请问itemheigh属性是干什么的?真的不能实现吗?

     

    feiyun0112 给看看.

    2008年12月9日 0:45
  • Code Snippet
     ComboBox1.DrawMode = DrawMode.OwnerDrawVariable
            ComboBox1.ItemHeight = 50
            ComboBox1.Items.Clear()
           
            ComboBox1.Items.Add(1)
            ComboBox1.Items.Add(2)
            ComboBox1.Items.Add(3)

     

     

     

     

    Code Snippet


        Private Sub ComboBox1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ComboBox1.DrawItem

            e.DrawBackground()

            Dim myBrush As Brush
            myBrush = Brushes.Red

            e.Graphics.DrawString(ComboBox1.Items(e.Index), e.Font, myBrush, New RectangleF(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height))

            e.DrawFocusRectangle()

        End Sub

     

     

     

    2008年12月9日 3:16
    版主