ComboBox控件的⽤法教程
前⾯我们了解了ListBox(列表框)控件的使⽤,在vb中还有⼀个与ListBox控件⼗分相似的控件——ComboBox 控件,也叫组合框。组合框控件包括两个部分,⼀部分是上部可以输⼊列表项的⽂本框;另⼀部分是位于⽂本框下⽅的列表框,⽤于显⽰⽤户可以从中选择的项的列表
  ComboBox 控件和ListBox 控件在功能上很相似,很多情况下,这两个控件是可以互换使⽤的,但是还是有某种特定的环境下只适合使⽤⼀种控件的情况。
  通常,ComboBox控件适合于建议⽤户选择控件所列举的选项、同时⼜可以让⽤户⾃⾏在⽂本框中输⼊列表中不存在的选项的情况;⽽ListBox 控件适合于限制⽤户只能选择列表中的选项的情况。
  在⽤户界⾯上,因为ComboBox 控件默认情况下是存在下拉列表框的,所以⽐ListBox 控件占⽤的窗体空间少,更加适合于使⽤在存在⼤量列表项的情况下。如下图三所⽰的是QQ修改个⼈设置的界⾯,它⼤量地合理使⽤ComboBox 控件,使得⽤户界⾯简洁且能容纳下更多的选项信息。
  由此可见,ComboBox 控件的⽐ListBox 控件更加能灵活多⽤。
  ⼀、ComboBox 控件的常⽤属性:
  1、BackColor 属性:获取或设置ComboBox 控件的背景⾊。
  2、DropDownStyle 属性:获取或设置指定组合框样式的值,确定⽤户能否在⽂本部分中输⼊新值以及列表部分是否总显⽰。它包含三个值,默认值为 DropDown,如下表所⽰:
成员名称说明
DropDown ⽂本部分可编辑。⽤户必须单击箭头按钮来显⽰列表部分。
DropDownList ⽤户不能直接编辑⽂本部分。⽤户必须单击箭头按钮来显⽰列表部分。
Simple ⽂本部分可编辑。列表部分总可见。
  3、DropDownWidth 属性:⽤于获取或设置组合框下拉部分的宽度(以像素为单位),有些列表项太长,则需要通过改变该属性来显⽰该类表项的全部⽂字,如果未设置 DropDownWidth 的值,该属性返回组合框的 Width。需要注意的是,下拉部分的宽度不能⼩于 ComboBox 的宽度,所以我们设置 DropDownWidth 的值如果⼩于ComboBox 的宽度时下拉列表框的宽度还是与⽂本框的宽度⼀样。
4、DroppedDown 属性:获取或设置⼀个值,该值指⽰组合框是否正在显⽰其下拉部分。如果显⽰下拉部分,则为 true;否则为 false。默认值为 false。
  5、IntegralHeight 属性:指定是否⾃动调整编辑框或列表框控件的⾼度,这样可以正确显⽰控件中的
最后⼀项。指定是否⾃动调整⽂本框控件的⾼度,以显⽰⼀⾏⽂本。设计时可⽤;运⾏时只读。默认为False。如果列表框控件的⾼度不合适,则控件中的最后⼀⾏⽂字会只显⽰⼀部分,将 IntergralHeight 设置为“True” ,可以⾃动调整控件的⾼度,这样可以正确显⽰控件中的最后⼀项。注意:当 integralheight 属性设置为“True” 时,Height 属性的值可能与控件的真实⾼度不符。
  6、Items 属性:获取⼀个对象,该对象表⽰该 ComboBox 中所包含项的集合。详细⽤法我们在下⽂介绍。
  7、MaxDropDownItems 属性:下拉部分中可显⽰的最⼤项数。该属性的最⼩值为 1,最⼤值为 100。
  8、Text 属性:ComboBox 控件中⽂本输⼊框中显⽰的⽂本。
  9、SelectedIndex 属性和 SelectedItem 属性:SelectedIndex 属性返回⼀个表⽰与当前选定列表项的索引的整数值,可以编程更改它,列表中相应项将出现在组合框的⽂本框内。如果未选定任何项,则SelectedIndex 为-1;如果选择了某个项,则SelectedIndex 是从0开始的整数值。SelectedItem 属性与 SelectedIndex 属性类似,但是SelectedItem 属性返回的是项。
  10、SelectedText 属性:表⽰组合框中当前选定⽂本的字符串。如果 DropDownStyle 设置为
ComboBoxStyle.DropDownList,则返回值为空字符串 ("")。可以将⽂本分配给此属性,以更改组合框中当前选定的⽂本。如果组合框中当前没有选定的⽂本,则此属性返回⼀个零长度字符串。如下代码,我们可以在ComboBox 控件的⿏标事件中验证该属性:Private Sub ComboBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ComboBox1.MouseUp
  MessageBox.Show(ComboBox1.SelectedText)
  End Sub
  返回的值则是我们⽤⿏标选定了的⽂本。
  与之对应的 SelectionLength 属性返回的则是该⽂本的字符数,SelectionStart 属性返回的则是组合框中选定⽂本的起始位置。
  ⼆、ComboBox 控件的重要⽅法:
  1、BeginUpdate ⽅法和 EndUpdate ⽅法:当使⽤Add ⽅法⼀次添加⼀个项时,则可以使⽤ BeginUpdate ⽅法,以防⽌每次向列表添加项时控件都重新绘制 ComboBox。完成向列表添加项的任务后,调⽤ EndUpdate ⽅法来启⽤ ComboBox 进⾏重新绘制。当向列表添加⼤量的项时,使⽤这种
⽅法添加项可以防⽌绘制 ComboBox 时闪烁。如下代码所⽰:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Dim i As Integer = 0
  ComboBox1.BeginUpdate()
  For i = 0 To 999
  ComboBox1.Items.Add("Item " &ComboBox1.Items.Count.ToString)
  Next
  ComboBox1.EndUpdate()
  End Sub
  2、Add ⽅法:items属性的⽅法之⼀,⼀般这样来使⽤:
ComboBox1.Items.Add("Item 0" )
  还可以使⽤items属性的Clear⽅法来清除所有的列表项。
  3、FindString ⽅法和FindStringExact ⽅法:
  FindString ⽅法⽤于查 ComboBox 中以指定字符串开始的第⼀个项,该⽅法是模糊查询,但是查的字符串⼀定在匹配项的开始位置。
  FindStringExact ⽅法⽤于查与指定字符串完全匹配的项。
  4、GetItemText ⽅法:返回指定项的⽂本表⽰形式。使⽤形式如下:
控件的使用
  GetItemText(item)
  三、⽰例:
  我们这⾥以代码来了解ComboBox 控件的使⽤,在窗体中加⼊⼀个Combobox控件,四个Button控件,⼀个TextBox控件,⼀个GroupBox控件,布局如下图四所⽰:
1、在“添加1000项”的按钮Click事件中添加如下代码:
Dim i As Integer = 0
  ComboBox1.BeginUpdate()
  For i = 0 To 999
  ComboBox1.Items.Add("Item " &(ComboBox1.Items.Count + 1).ToString)
  Next
  ComboBox1.EndUpdate()
  2、在“添加⼀个项”按钮Click事件中添加如下代码:
 ComboBox1.Items.Add(TextBox1.Text)
  即以⽂本框中输⼊的⽂本作为项的⽂字。
  3、在“查模糊匹配项”按钮的Click事件中添加如下代码:
 ComboBox1.SelectedIndex = ComboBox1.FindString(TextBox1.Text)
  即返回以⽂本框中输⼊的⽂本开头的第⼀项作为ComboBox控件的选中项。
  4、在“查完全匹配项”按钮的Click事件中添加如下代码: 
ComboBox1.SelectedIndex = ComboBox1.FindStringExact(TextBox1.Text)
  即返回与⽂本框中输⼊的⽂本完全匹配的项作为ComboBox控件的选中项。
  5、在ComboBox1的SelectedIndexChanged事件中添加如下代码:
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged   MessageBox.Show(ComboBox1.GetItemText(ComboBox1.SelectedItem))
  End Sub
  当ComboBox1的当前选中项改变时,通过GetItemText⽅法返回当前选中项的⽂本。
以上所述是⼩编给⼤家介绍的ComboBox 控件的⽤法教程,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。在此也⾮常感谢⼤家对⽹站的⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。