ComboBox列表智能自动下拉
- 格式:pdf
- 大小:75.15 KB
- 文档页数:7
15ComboboxCombobox是下拉框控件。
由一个输入框、下拉按钮组成。
当点击下拉按钮之后,会弹出下拉列表,用户选择相应的选项后,下拉列表会收起,用户选择的选项会出现在输入框中。
Combobox不是定义在tkinter中的控件,而是定义在ttk中的一个控件。
Combobox不是继承的Widget类,而是继承了Entry类,因此可以把Combobox当成是Entry类的扩展。
下拉框控件和列表框控件非常类似,不过只显示为一个输入框,更省窗口空间。
15.1属性属性描述class_设置创建的Combobox实例的名字cursor鼠标位于Combobox的形状exportselection决定是否可以复制选中的文本内容。
如果exportselection=True,表示可以。
exportselection=False,表示不可复制列表框中选中的选项height下拉列表的行数。
默认值是20justify输入框中的对齐方式。
postcommand下拉列表弹出前的回调函数。
用于动态改变下拉列表内容。
takefocus能够使用Tab获得输入焦点values设置下拉列表的值width定义输入框的宽度。
默认值是20。
下拉箭头的宽度是固定的,不可调整。
15.1.1class_设置创建的Combobox的名字。
这个名字只能在创建实例的时候赋值,不能动态更改。
15.1.2cursor鼠标位于Combobox控件时的形状。
具体的关于cursor的介绍见3.2.6节。
不过此属性对combobox不起作用,鼠标的形状不会发生改变15.1.3exportselection决定是否可以复制选中的文本内容。
如果exportselection=True,表示可以。
exportselection=False,表示不可复制选中的选项。
不过此属性对于Combobox控件不起作用。
15.1.4height确定下拉列表的行数或者项目数。
默认值是20,如果超过这个默认值,会自动出现滚动条。
.Net之Winform桌面应用程序中Combobox三级下拉菜单连动问题地解决方案收藏由于上传数据库不方便,所以,就直接使用XML文件做数据库吧.这是实现后地效果截图:三级菜单对应地XML文件(数据库):第一级:省/直辖市,对应地XML文件:Location_Province.xml第二级:地/市级,对应地XML文件:Location_City.xml第三级:县/区级,对应地XML文件:Location_Area.xml以下为三个XML文件,其中第一级为全部,由于文件太大,所以第二三级为部分XML代码片段.(1)省/直辖市,对应地XML文件:Location_Province.xml<?xml version="1.0" standalone="yes"?><NewDataSet><xs:schema id="NewDataSet" xmlns="" xmlns:xs="/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"><xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"><xs:complexType><xs:choice minOccurs="0" maxOccurs="unbounded"><xs:element name="Table"><xs:complexType><xs:sequence><xs:element name="id" type="xs:int" minOccurs="0" /><xs:element name="province" type="xs:string" minOccurs="0" /><xs:element name="provinceID" type="xs:string" minOccurs="0" /></xs:sequence></xs:complexType></xs:element></xs:choice></xs:complexType></xs:element></xs:schema><Table><id>1</id><province>北京市</province><provinceID>110000</provinceID></Table><Table><id>2</id><province>天津市</province><provinceID>120000</provinceID></Table><Table><id>3</id><province>河北省</province><provinceID>130000</provinceID> </Table><Table><id>4</id><province>山西省</province><provinceID>140000</provinceID> </Table><Table><id>5</id><province>内蒙古自治区</province> <provinceID>150000</provinceID> </Table><Table><id>6</id><province>辽宁省</province><provinceID>210000</provinceID> </Table><Table><id>7</id><province>吉林省</province><provinceID>220000</provinceID> </Table><Table><id>8</id><province>黑龙江省</province><provinceID>230000</provinceID> </Table><Table><id>9</id><province>上海市</province><provinceID>310000</provinceID> </Table><Table><id>10</id><province>江苏省</province><provinceID>320000</provinceID> </Table><Table><id>11</id><province>浙江省</province><provinceID>330000</provinceID> </Table><Table><id>12</id><province>安徽省</province><provinceID>340000</provinceID></Table><Table><id>13</id><province>福建省</province><provinceID>350000</provinceID></Table><Table><id>14</id><province>江西省</province><provinceID>360000</provinceID></Table><Table><id>15</id><province>山东省</province><provinceID>370000</provinceID></Table><Table><id>16</id><province>河南省</province><provinceID>410000</provinceID></Table><Table><id>17</id><province>湖北省</province><provinceID>420000</provinceID></Table><Table><id>18</id><province>湖南省</province><provinceID>430000</provinceID></Table><Table><id>19</id><province>广东省</province><provinceID>440000</provinceID></Table><Table><id>20</id><province>广西壮族自治区</province> <provinceID>450000</provinceID></Table><Table><id>21</id><province>海南省</province><provinceID>460000</provinceID> </Table><Table><id>22</id><province>重庆市</province><provinceID>500000</provinceID> </Table><Table><id>23</id><province>四川省</province><provinceID>510000</provinceID> </Table><Table><id>24</id><province>贵州省</province><provinceID>520000</provinceID> </Table><Table><id>25</id><province>云南省</province><provinceID>530000</provinceID> </Table><Table><id>26</id><province>西藏自治区</province> <provinceID>540000</provinceID> </Table><Table><id>27</id><province>陕西省</province><provinceID>610000</provinceID> </Table><Table><id>28</id><province>甘肃省</province><provinceID>620000</provinceID> </Table><Table><id>29</id><province>青海省</province><provinceID>630000</provinceID> </Table><Table><id>30</id><province>宁夏回族自治区</province><provinceID>640000</provinceID></Table><Table><id>31</id><province>新疆维吾尔自治区</province><provinceID>650000</provinceID></Table><Table><id>32</id><province>台湾省</province><provinceID>710000</provinceID></Table><Table><id>33</id><province>香港特别行政区</province><provinceID>810000</provinceID></Table><Table><id>34</id><province>澳门特别行政区</province><provinceID>820000</provinceID></Table></NewDataSet>第二级:地/市级,对应地XML文件:Location_City.xml<?xml version="1.0" standalone="yes"?><NewDataSet><xs:schema id="NewDataSet" xmlns="" xmlns:xs="/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"><xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"><xs:complexType><xs:choice minOccurs="0" maxOccurs="unbounded"><xs:element name="Table"><xs:complexType><xs:sequence><xs:element name="id" type="xs:int" minOccurs="0" /><xs:element name="city" type="xs:string" minOccurs="0" /><xs:element name="cityID" type="xs:string" minOccurs="0" /><xs:element name="father" type="xs:string" minOccurs="0" /></xs:sequence></xs:complexType></xs:element></xs:choice></xs:complexType></xs:element></xs:schema><Table><id>1</id><city>市辖区</city><cityID>110100</cityID><father>110000</father></Table><Table><id>2</id><city>县</city><cityID>110200</cityID><father>110000</father></Table><Table><id>3</id><city>市辖区</city><cityID>120100</cityID><father>120000</father></Table><Table><id>4</id><city>县</city><cityID>120200</cityID><father>120000</father></Table><!-- //这里还有N多个--></NewDataSet>第三级:县/区级,对应地XML文件:Location_Area.xml<?xml version="1.0" standalone="yes"?><NewDataSet><xs:schema id="NewDataSet" xmlns="" xmlns:xs="/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"><xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"><xs:complexType><xs:choice minOccurs="0" maxOccurs="unbounded"><xs:element name="Table"><xs:complexType><xs:sequence><xs:element name="id" type="xs:int" minOccurs="0" /><xs:element name="area" type="xs:string" minOccurs="0" /><xs:element name="areaID" type="xs:string" minOccurs="0" /><xs:element name="father" type="xs:string" minOccurs="0" /></xs:sequence></xs:complexType></xs:element></xs:choice></xs:complexType></xs:element></xs:schema><Table><id>1</id><area>东城区</area><areaID>110101</areaID><father>110100</father></Table><Table><id>2</id><area>西城区</area><areaID>110102</areaID><father>110100</father></Table><Table><id>3</id><area>崇文区</area><areaID>110103</areaID><father>110100</father></Table><Table><id>4</id><area>宣武区</area><areaID>110104</areaID><father>110100</father></Table><Table><id>5</id><area>朝阳区</area><areaID>110105</areaID><father>110100</father></Table><Table><id>6</id><area>丰台区</area><areaID>110106</areaID><father>110100</father> </Table><Table><id>7</id><area>石景山区</area> <areaID>110107</areaID> <father>110100</father> </Table><Table><id>8</id><area>海淀区</area><areaID>110108</areaID> <father>110100</father> </Table><Table><id>9</id><area>门头沟区</area> <areaID>110109</areaID> <father>110100</father> </Table><Table><id>10</id><area>房山区</area><areaID>110111</areaID> <father>110100</father> </Table><Table><id>11</id><area>通州区</area><areaID>110112</areaID> <father>110100</father> </Table><Table><id>12</id><area>顺义区</area><areaID>110113</areaID> <father>110100</father> </Table><Table><id>13</id><area>昌平区</area><areaID>110114</areaID> <father>110100</father> </Table><Table><id>14</id><area>大兴区</area><areaID>110115</areaID><father>110100</father></Table><Table><id>15</id><area>怀柔区</area><areaID>110116</areaID><father>110100</father></Table><Table><id>16</id><area>平谷区</area><areaID>110117</areaID><father>110100</father></Table><Table><id>17</id><area>密云县</area><areaID>110228</areaID><father>110200</father></Table><Table><id>18</id><area>延庆县</area><areaID>110229</areaID><father>110200</father></Table><!-- //这里还有N多个--></NewDataSet>这里先讲一下三者之间地关系:三个文件中分别有<provinceID>110000</provinceID><cityID>110100</cityID><areaID>110229</areaID>之类地ID号,它们都是唯一地.而City,Area一级中都存在一个:<father>110000</father>之类地元素,分别与其父级相应ID 号对应.这样,三级菜单之间就关联起来了.关键代码:为方便描述,示意一下放代码地区域:namespace AgencyWingoon{public partial class CompanyInfoForm : Form{// A区}}将DataSet, DataTable相关变量放在上述地A区内:DataSet dsProvince = null;DataSet dsCity = null;DataSet dsArea = null;DataTable dtProvince = null;DataTable dtCity = null;DataTable dtArea = null;Form_Load事件中:(也放A区内)private void CompanyInfoForm_Load(object sender, EventArgs e){//初始化下拉菜单:InitLocation();//下面是其他代码// .....}以下代码全部也放在A区内:private void InitLocation(){string xmlFileLocation_Province = @"./Location/Location_Province.xml";string xmlFileLocation_City = @"./Location/Location_City.xml";string xmlFileLocation_Area = @"./Location/Location_Area.xml";//从XML文件中读取记录,加载为DataSetdsProvince = new DataSet();dsProvince.ReadXml(xmlFileLocation_Province);dtProvince = dsProvince.Tables[0];dsCity = new DataSet();dsCity.ReadXml(xmlFileLocation_City);dtCity = dsCity.Tables[0];dsArea = new DataSet();dsArea.ReadXml(xmlFileLocation_Area);dtArea = dsArea.Tables[0];BindProvinceData();}// cmbBoxProvince 省/直辖市下拉菜单选项变化时地事件:private void cmbBoxProvince_SelectedIndexChanged(object sender, EventArgs e){BindCityData();this.cmbBoxCity.SelectedIndex = 0;BindAreaData();this.cmbBoxArea.SelectedIndex = 0;}// cmbBoxCity 地/市级下拉菜单选项变化时地事件:private void cmbBoxCity_SelectedIndexChanged(object sender, EventArgs e){BindAreaData();this.cmbBoxArea.SelectedIndex = 0;}// 绑定省/直辖市数据private void BindProvinceData(){cmbBoxProvince.DataSource = dtProvince;cmbBoxProvince.DisplayMember = "province";cmbBoxProvince.ValueMember = "provinceID";}// 绑定地/市级数据private void BindCityData(){string provinceId = dtProvince.Rows[this.cmbBoxProvince.SelectedIndex]["provinceID"].ToString();dtCity.DefaultView.RowFilter = "father = " + provinceId;cmbBoxCity.DataSource = dtCity.DefaultView;cmbBoxCity.DisplayMember = "city";cmbBoxCity.ValueMember = "cityID";}// 绑定县/区级数据private void BindAreaData(){string provinceId = dtProvince.Rows[this.cmbBoxProvince.SelectedIndex]["provinceID"].ToString();dtCity.DefaultView.RowFilter = "father = " + provinceId;string cityId = dtCity.DefaultView.ToTable().Rows[this.cmbBoxCity.SelectedIndex]["cityID"].ToString();dtArea.DefaultView.RowFilter = "father = " + cityId;cmbBoxArea.DataSource = dtArea.DefaultView;cmbBoxArea.DisplayMember = "area";cmbBoxArea.ValueMember = "areaID";}本文来自CSDN博客,转载请标明出处:/johnsuna/archive/2007/07/16/1693890.aspx11 / 11。
QComboBox 是下拉列表框组件类,它提供一个下拉列表供用户选择,也可以直接当作一个 QLineEdit 用作输入。
QComboBox 除了显示可见下拉列表外,每个项(item,或称列表项)还可以关联一个 QVariant 类型的变量,用于存储一些不可见数据。
实例演示 QComboBox(和 QPlainTextEdit,后续会讲)的使用,其运行时界面如图 1 所示。
图 1 实例 samp4_6 运行界面QComboBox 的用法设计时属性设置QComboBox 主要的功能是提供一个下拉列表供选择输入。
在界面上放置一个 QComboBox 组件后,双击此组件,可以出现如图 2 所示的对话框,对QComboBox 组件的下拉列表的项进行编辑。
在图 2 所示的对话框中,可以进行编辑,如添加、删除、上移、下移操作,还可以设置项的图标。
图 2 QComboBox 组件设计时的列表项编辑器用代码添加简单项窗口上的“初始化列表”按钮初始化下拉列表框的列表内容,其代码如下:void Widget::on_btnIniItems_clicked(){ //"初始化列表"按键QIcon icon;icon.addFile(":/images/icons/aim.ico");ui->comboBox->clear(); //清除列表for (int i=0;i<20;i++)ui->comboBox->addItem(icon,QString::asprintf("Item %d",i)); //带图标//ui->comboBox->addItem(QString::asprintf("Item %d",i)); //不带图标}添加一个项时可以指定一个图标,图标来源于资源文件。
addItem() 用于添加一个列表项,如果只是添加字符串列表项,而且数据来源于一个 QStringList 变量,可以使用 addltems() 函数,示例代码如下:ui->comboBox->clear();QStringList strList;strList<<"北京"<<"上海"<<"天津"<<"河北省"<<"山东省"<<"山西省";ui->comboBox->addItems(strList);添加具有用户数据的项 QComboBox::addltem() 函数的两种参数的原型定义如下:不管是哪一个 addItem() 函数,后面都有一个可选的 QVariant 类型的参数 userData,可以利用这个变量存储用户定义数据。
1. 设定默认值把属性Style->Sort去掉,这一步必须的CComboBox *pBox = (CComboBox *)GetDlgItem( IDC_COMBOBOX1 ) ; //假设ID为IDC_COMBOBOX1pBox->SetCurSel( 0 ) ; //设置为第零个元素一、如何添加/删除Combo Box内容1. 在Combo Box控件属性的Data标签里面添加,一行表示Combo Box下拉列表中的一行。
换行用ctrl+回车。
2. 在程序初始化时动态添加如://控件内容初始化CString strTemp;((CComboBox*)GetDlgItem(IDC_COMBO_CF))->ResetContent();//消除现有所有内容for(int i=1;i<=100;i++){strTemp.Format("%d",i);((CComboBox*)GetDlgItem(IDC_COMBO_CF))->AddString(strTemp);}3. 下拉的时候添加如:CString strTemp;int iCount=((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetCount();//取得目前已经有的行数if(iCount<1)//防止重复多次添加{((CComboBox*)GetDlgItem(IDC_COMBO_CF))->ResetContent();for(int i=1;i<=100;i++){strTemp.Format("%d",i);((CComboBox*)GetDlgItem(IDC_COMBO_CF))->AddString(strTemp);}}4. 删除DeleteString( UINT nIndex )//删除指定行,5. 插入InsertString( int nIndex, LPCTSTR lpszItem )//将行插入到指定位置6. 查找FindString( int nStartAfter, LPCTSTR lpszItem )//可以在当前所有行中查找指定的字符传的位置,nStartAfter指明从那一行开始进行查找。
jQueryEasyUI-ComboBox(下拉列表框)⼀、combobox 前台页⾯动态加载显⽰判断输⼊值在下拉列表是否存在var nameStr ='';$(document).ready(function(){$('#customerId').combobox({prompt:'请输⼊或选择客户名称', //prompt属性为没有选中任何选项的时候显⽰的标签如“--性别--”url:'${rc.contextPath}/sale/findBusinessPartnerByName',valueField:'id',textField:'text' ,onClick: function(node) {attributeShow($("#customerId").combotree("getValue"));},filter: function(q, row){ //filter属性模糊查询var opts = $(this).combobox('options');//return row[opts.textField].indexOf(q) == 0;return row[opts.textField].indexOf(q)>-1;//将从头位置匹配改为任意匹配},onLoadSuccess: function(){var partnerId = '${(saleOrder.partnerId)!}';if(partnerId){$('#customerId').combobox('setValue',partnerId);}},onSelect: function(){var partnerId = $("#customerId").combotree("getValue");$("#business_partner_id").val(partnerId);findBusinessPartnerContactByPartnerId(partnerId);findSaleAddressByPartnerId(partnerId);},onChange: function(newValue, oldValue){var v = $("#customerId").combotree("getText");var arr = nameStr.split(',');var index = $.inArray(v, arr);if(index < 0 ){$("#business_partner_id").val('');}else{$("#business_partner_id").val($("#customerId").combobox("getValue"));}},formatter: function(row){var opts = $(this).combobox('options');nameStr += row[opts.textField] + "," ;return row[opts.textField];}});});Combobox⽤法和⽅法参数:1、需要引⼊class=" easyui-combobox”2、参数设置需要在data-options中设置3、属性参数配置:valueField:基础数据值名称绑定到Combobox(提交值)textField:基础数据的字段名称绑定的Combobox(显⽰值)mode:定义当⽂本改变时如何加载列表数据,当设置为remote模式下,什么类型的⽤户将被发送http请求参数名为'q'的服务器,以获取新的数据。
MFC中combo下拉框的使用组合框控件简介组合框其实就是把一个编辑框和一个列表框组合到了一起,分为三种:简易(Simple)组合框、下拉式(Dropdown)组合框和下拉列表式(Drop List)组合框。
下面讲讲它们的区别。
简易组合框中的列表框是一直显示的,效果如下图:下拉式组合框默认不显示列表框,只有在点击了编辑框右侧的下拉箭头才会弹出列表框,列表框弹出后如下图:下拉列表式组合框的编辑框是不能编辑的,只能由用户在下拉列表框中选择了某项后,在编辑框中显示其文本。
下拉列表式组合框如下图:经过上面的介绍,大家应该知道,最常用的当属下拉式组合框和下拉列表式组合框了,它们在很多时候能使程序看起来更专业,更简洁,让用户在进行选择操作时更方便。
组合框被操作时会向父窗口发送通知消息,这些通知消息及其含义如下:CBN_CLOSEUP:组合框的列表框组件被关闭,简易组合框不会发送该通知消息CBN_DBLCLK:用户在某列表项上双击鼠标,只有简易组合框才会发送该通知消息CBN_DROPDOWN:组合框的列表框组件下拉,简易式组合框不会发送该通知消息CBN_EDITUPDATE:在编辑框准备显示改变了的正文时发送该消息,下拉列表式组合框不会发送该消息CBN_EDITCHANGE:编辑框的内容被用户改变了,与CBN_EDITUPDATE不同,该消息是在编辑框显示的正文被刷新后才发出的,下拉列表式组合框不会发送该消息CBN_ERRSPACE:组合框无法申请足够的内存来容纳列表项CBN_SELENDCANCEL:表明用户的选择应该取消,当用户在列表框中选择了一项,然后又在组合框控件外单击鼠标时就会导致该消息的发送CBN_SELENDOK:用户选择了一项,然后按了回车键或单击了下滚箭头,该消息表明用户确认了自己所作的选择CBN_KILLFOCUS:组合框失去了输入焦点CBN_SELCHANGE:用户通过单击或移动箭头键改变了列表的选择CBN_SETFOCUS:组合框获得了输入焦点组合框控件的创建MFC将组合框控件的所有操作都封装到了CComboBox类中。
Combo Box (组合框)控件很简单,可以节省空间。
从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的。
用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输入文本。
下面的例子简要说明如何利用MFC CComboBox Class来操作字符串列表。
1、定义控件对应变量假定已经创建了一个Dialog,并且从控件工具箱将Combo Box 控件拖放到上面。
打开Class Wizard,添加控件对应变量,如:CComboBox m_cbExamble;在后面的代码中会不断使用这个变量。
2、向控件添加Items1) 在Combo Box控件属性的Data标签里面添加,一行表示Combo Box下拉列表中的一行。
换行用ctrl+回车。
2) 利用函数AddString() 向Combo Box 控件添加Items,如:m_cbExample.AddString(“StringData1”);m_cbExample.AddString(“StringData2”);m_cbExample.AddString(“StringData3”);3) 也可以调用函数InsertString() 将Item 插入指定位置nIndex,如:m_cbExample.InsertString( nIndex, “StringData” );3、从控件得到选定的Item假设在控件列表中已经选定某项,现在要得到被选定项的内容,首先要得到该项的位置,然后得到对应位置的内容。
这里会用到两个函数,如:int nIndex = m_cbExample.GetCurSel();CString strCBText;m_cbExample.GetLBText( nIndex, strCBText);这样,得到的内容就保存在strCBText 中。
若要选取当前内容,可调用函数GetWindowText(strCBText)。
ExcelVBA字典实现窗体二级下拉菜单ExcelVBA字典实现窗体二级下拉菜单问题提出:选择确定ComboBox1中的数值后,ComboBox2的下拉列表自动引用ComboBox1中数值对应的列的内容。
如何能做到我现在想在加一重判断:就是判断ComboBox2中的数值,如果是原来ComboBox1对应列中已有的值,就直接向下进行,如果原来ComboBox1对应列中没有该值,自动添加到该列最下一个非空行之后再向下执行。
字典的引用:窗体代码如下:Public Arr, Dic As NewDictionary'声明为公共变量,引用“Microsoft Scripting Runtime”Private Sub UserForm_Initialize() '窗体初始化事件DimBrrArr =Sheet1.Range("A1").CurrentRegion.Value 'A1单元格已用区域For i = 1 ToUBound(Arr,2)'循环标题,并添加到字典If Not Dic.Exists(Arr(1, i))Then'字典中不存在关键字Dic.Add Arr(1, i), Dic.Count +1'添加关键字,Item为索引End IfNextBrr =Dic.KeysboBox1.Clear'清除列表框1条目For i = 0 ToUBound(Brr) -1'列表框1添加条目boBox1.AddItem Brr(i) NextEnd SubPrivate Sub ComboBox1_DropButtonClick() '列表框1下拉事件DimBrrIfboBox1.Text = "" Then ExitSub'如果列表框1为空,就退出过程boBox2.Clear'清空列表框2条目IfDic.Exists(boBox1.Text) Then '如果列表框的关键字,在字典中有记录Brr = Application.WorksheetFunction.Index(Arr, 0,Dic(boBox1.Text)) '用Index函数取出整列数据For i = 2 To UBound(Brr,1)'列表框2添加条目boBox2.AddItem Brr(i,1)'列表框2添加条目NextEnd IfEnd SubPrivate Sub CommandButton1_Click() '按钮1单击事件IfboBox1.Text = "" Or boBox2.Text = ""Then ExitSub'如果列表框1,2为空,就退出过程Dim Brr,CrrBrr =Application.WorksheetFunction.Index(Arr, 0,Dic(boBox1.Text))'用Index函数取出整列数据Crr =VBA.Filter(Application.Transpose(Brr),boBox2.Text,True)'取出匹配列表框2的值IfUBound(Crr) = -1 Then'如果有列表框2的值,数组不会为-1,'如果列表框2中没有此关键字,往原数据添加此关键字Sheet1.Cells(Rows.Count,Dic(boBox1.Text)).End(xlUp).Offset(1).Value = boBox2.TextEnd IfSheet1.Cells(Rows.Count, 10).End(xlUp).Offset(1).Value =boBox2.Text'+ boBox1.Text '把数据写入单元格boBox1.Text = "": boBox2.Text = ""'列表框1,2显示为空白boBox1.Clear:boBox2.Clear'清空列表框1,2的条目CallUserForm_Initialize'初始化窗体,为下一次录入数据准备End Sub效果图:更多分享请关注微信号微信号:Excel335081548 或: 雪山飞狐Excel 喜欢本文,请点击右上角,分享本文。
4.7 组合框(ComboBox)图4-10 组合框的三种形式组合框(ComboBox)是由文本框和列表框组合而成的控件。
组合框有三种形式:下拉式组合框、简单组合框和下拉式列表框。
(如图4-10所示)三种形式都能在列表中选择项目,所选项目会显示在文本框中。
“下拉式组合框”和“简单组合框”还可以通过在文本框中输入文本来进行选择。
“下拉式组合框”和“下拉式列表框”均具有能“下拉”和“收起”的列表,可节省空间。
通过Style属性可选择所需的形式。
4.7.1 属性与方法(1)Style属性决定组合框的类型和行为,可选值为0、1、2,默认值为0。
(a)0 – Dropdown Combo(下拉式组合框):正常状态仅显示文本框和下拉按钮;当单击下拉按钮时,会显示列表框供用户选择;再次单击下拉按钮,列表框隐藏,恢复正常状态。
用户可以通过列表框选择项目,也可以在文本框中输入项目文本来进行选择,所选项目会显示在文本框中。
此形式允许用户键入列表框中没有的选项。
(b)1 – Simple Combo(简单组合框):文本框与列表框一起显示,文本框右侧无下拉按钮,列表框固定显示,不能被“拉下”和“收起”。
对项目的选择与下拉式组合框相同。
在设计时,应适当调整组合框的大小,否则执行时有些列表项可能不被显示。
当选项数超过可显示的限度时将自动插入一个垂直滚动条。
(c)2 - Dropdown ListBox(下拉式列表框):外观同下拉式组合框一样,有下拉按钮以及可供“拉下”和“收起”列表框。
与下拉式组合框的有所不同的是,用户不能在列表框中输入选项,而只能在列表中选择。
(2)其他属性与方法组合框的大部分属性和方法与列表框相同,比如要访问控件的项目,可以用List数组;控件的当前选项由控件的Text属性确定;AddItem方法将项目加人到组合框的项目列表中;RemoveItem 方法将组合框中选定的项目删除;Sorted属性决定组合框中的项目是否排序等。