Combo控件
mcgs组合框用法

MCGS(Monitor and Control System,监控与控制系统)是一款基于Windows平台的数据采集和监控软件。
组合框(Combo Box)是MCGS中的一个常用控件,它由一个输入框和一个下拉菜单组成,用户可以在下拉菜单中选择预定义的选项,同时也可以直接在输入框中输入文本。
以下是关于MCGS组合框的用法:1. 添加组合框:在MCGS中,可以通过以下步骤添加组合框:- 打开MCGS工程浏览器,找到需要添加组合框的窗口。
- 在控件工具箱中找到组合框控件,将其拖放到窗口上。
- 在弹出的属性设置对话框中,设置组合框的相关属性,如标题、字体、背景色等。
2. 向组合框添加项目:- 选中组合框控件,在属性设置中找到“项”标签。
- 分别在“项”标签的“添加”按钮和“删除”按钮中,添加和删除组合框的项目。
- 在“项”标签中,可以设置项目的文本、图标和快捷键等。
3. 设置组合框的默认项:- 选中组合框控件,在属性设置中找到“默认”标签。
- 在“默认”标签中,设置组合框的默认项目。
当用户打开组合框时,将自动显示默认项目。
4. 获取和设置组合框的选中项:- 选中组合框控件,在属性设置中找到“值”标签。
- 在“值”标签中,可以获取和设置组合框当前选中的项目。
5. 响应组合框的切换事件:- 在MCGS中,可以通过编写脚本响应组合框的切换事件。
例如,在组合框的“项”标签中,设置“切换”事件处理函数。
- 在事件处理函数中,可以编写相应的程序代码,如更新其他控件的值、执行特定操作等。
6. 组合框与其他控件的联动:- MCGS中的组合框可以与其他控件(如按钮、文本框等)实现联动。
例如,当用户在组合框中选择某个项目时,自动更新其他控件的值。
- 实现联动的方法是在其他控件的属性设置中,设置触发联动事件的条件,如“值改变”事件。
然后在事件处理函数中,根据组合框的当前选中项,更新其他控件的值。
MFC组合框CComboBox控件

CComboBoxCComboBox控件又称作组合框控件,其有三种形态可供选择,1.简单组合框(Simple)2.下拉组合框(Drop-down)3.下拉列表式组合框(Drop-down list).CComboBox控件的常用设置属性说明:type属性:里面一共有三个选项.就是其三种形式, 我们常用的是后两种形态,其区别就是Dropdown的编辑区为可编辑控件,而droplist为静态控件.Data属性:当程序初始化的时候,下拉列表将显示其属性里面的内容,内容用分号分隔.其属性只支持后2中形式,Sort 属性:对添加到下拉列表框中的数据自动进行排序,如果你不想他改变你的显示序列,把他设置成False.控件是一个窗口.其基类是为CWnd.所以CComboBox也可以使用CWnd的一些函数,它自己的函数有30几种.我写了一个示范程序,演示了一些常用的函数,你可以参考其代码看到其功能.注:m_cbox 为CComboBox控件的关联变量,m_end为EDIT控件的关联变量1.GetCount() 函数:用以获得列表框中的选项数目. int GetCount() const;(此乃函数原型,我会列在每条的后面) 下面的例子是程序中各个按钮里面的代码int i;CString str;i=m_cbox.GetCount();str.Format ("%d",i);m_end="一共有"+str+"个数据";UpdateData(FALSE);2.GetCurSel() 函数:用以得到用户选中下拉列表框中数据的索引值.返回的值是重0开始的,如果没有选择任何选项将会返回-1 Int GetCurSel() constint i;CString str;i=m_cbox.GetCurSel ();str.Format ("%d",i+1);if (i==-1) m_end="你什么都没有选";else m_end="你选的是第"+str+"项";UpdateData(FALSE);3.SetCurSel函数:选取列表框中的一个选项,索引从0开始,-1为什么都不选.当你需要把列表框中已经选取的内容清空时就可以使用这个函数;if(m_i<3) m_cbox.SetCurSel (m_i++);//m_i为int型变量用以计数else {m_cbox.SetCurSel (-1);m_i=0;}4.SetEditSel函数:设置编辑区中蓝色选中字段的长度, BOOL SetEditSel( intnStartChar,int nEndChar ); nStartChar是起始的位置,当设置为-1时为不选择任何字段,nEndChar是结束位置.还有一个对应的函数GetEditSel是取得其位置,在此不详解.m_cbox.SetEditSel (3,5);//在编辑框中打入一串数字在按此按钮就能看到效果//其作用就是选中第3到第5个字符作为热点5.Clear() Cut() Paste() Copy() 这四个函数我放在一起说,因为他们都是针对编辑框中选定的文字进行编辑的函数,很多初学者很不明白这4个函数,使用这些函数没有作用,其实不然,这些函数对于在编辑框中的内容不进行处理,他真正处理的是你用鼠标选中的内容,对于Clear()函数很多书中解释都是有误的,很多书中对他的解释是清除当前选中的文本,我认为这样的解释是有歧异的,真正的解释是把你刚选中的文本释放掉,也就是不选,而不是把选中的删除,真正的删除选中的文本的函数是Cut(),Copy()是复制选中的文本,Paste()是粘贴到光标处.其演示就不写在程序中,有兴趣的朋友可以自己试试.6.LimitText()函数.其作用是限制在编辑框中键入的文本长度,BOOL LimitText(int nMaxChars);当nMaxChars为0时,不是不能输入,而是长度最大化为65535字节7.GetLBText()函数.其原型为void GetLBText( int nIndex, CString&rString ).nIndex为列表框中数据的索引值,rString 为字符串,其作用就是把索引号为nIndex的数据放到rString变量中.与其对应的GetLBTextLen(intnIndex)函数就是得到索引号为nIndex中数据的长度m_cbox.GetLBText (2,m_end); // GetLBText按钮UpdateData(0);CString str; //GetLBTextLen按钮int i=m_cbox.GetLBTextLen (2);str.Format ("%d",i);m_end=str;UpdateData(FALSE);8.AddString() DeleteString() InsertString() ResetContent() 四个函数放在一起,他们都是针对下拉列表框的处理函数, AddString(LPCTSTR lpszString) 是在列表框的尾巴添加一条数据,参数为字符串. DeleteString(UINT nIndex)为删除指定索引为nIndex的数据. InsertString(int nIndex, LPCTSTR lpszString)在索引nIndex处插入IpszString的内容. ResetContent()是清除列表框中所有的内容.9.SetDroppedWidth(UINT nWidth) 函数.用于设定下拉列表框的最小宽度,当下拉列表框中的数据很长不能完全显示时,我们可以使用这个函数把列表框的宽度设置的大些.同样GetDroppedWidth()是返回列表框的宽度.以下为总结了各大论坛中对CCombBox控件使用的问题.并给出了正解.1.关于CComboBox在对话框中没有下拉项目的问题答: 资源编辑器中对话框中CComboBox组件的垂直范围拉大了下,就看见字体了,看到那个向下的黑箭头了吗,点他下拉,嘿嘿就这么简单.2.请问怎样能让CCombobox记住用户的输入.下次使用时还有答: 要记住用户的输入必须用到文件读写,或者把内容添加到注册表中,我会在以后给出解决办法.3. CCOMBOBOX如何使它只读,不能编辑答: 看了本文的介绍也许你现在知道了, CCOMBOBOX有三种类型的,选择你需要的吧!4. 我要让界面一显示,就能在Combo框中显示默认的数据答: 你要在OnInitDialog里面加上我上面所提到的SetCurSel()函数就行了.5. 如何把选好的内容赋给变量答: 先给CCOMBOBOX设置一个CString关联变量,再添加事件处理函数CBN_ Selchange.使用UpdateData(FALSE)就行了.6. 在CComboBox组合框中,条目的对齐方式是左对齐,能设置为对中或者右对齐吗?答: 没有直接的方法,你必须自己对齐, 比如最大长度是10int i;String.Format("%10d", i);CComboBox->AddStringVC combobox 使用大全 ---------------------------------------------------一、如何添加/删除Combo Box内容1. 在Combo Box控件属性的Data标签里面添加,一行表示Combo Box下拉列表中的一行。
Combox控件SelectChange事件

SelectionChangeCommitted事件在设定datasource和displaymember和valuemember时,以及手动改变combobox索引和值时都不触发该事件, 只是在界面选择combobox不同值时触发。
SelectedIndexChanged事件当 SelectedIndex 属性更改时发生,索引改变时触发。
SelectedValueChanged事件当 SelectedValue 属性更改时发生,值改变时触发。
--------------------------------------------------------------------------------------------------------------------------区别:1、SelectedIndexChanged和SelectedValueChanged可以通过编程的方式更改属性而触发事件,但SelectionChangeCommitted事件必须由用户操作选定选项才能触发。
2、在初始化时(设置源)SelectedIndexChanged和SelectedValueChanged都会被调用,而SelectionChangeCommitted没有这个问题。
3、SelectionChangeCommitted也有一个小问题,当打开下拉菜单,用键盘的上下光标键选择条目后(不用鼠标点击),鼠标点击其他控件,使焦点转移,此时comboBox的Text 属性已改变,SelectedIndex属性也已改变,但这样的操作不会触发SelectionChangeCommitted事件。
结论:SelectionChangeCommitted一定要由鼠标选择才能触发(个人感觉)。
--------------------------------------------------------------------------------------------------------------------------关于事件的触发设置DataSource, DisplayMember, ValueMember不同顺序触发SelectedIndexChanged事件和SelectedValueChanged事件的次数顺序一:boBox1.DisplayMember = "userName"; (不触发)boBox1.ValueMember = "userAge"; (只触发SelectedValueChanged)boBox1.DataSource = dt; (都触发)SelectedValueChanged触发两次(总是先触发)SelectedIndexChanged,触发一次(设置DisplayMember属性时不触发两种事件)顺序二:boBox1.ValueMember = "userAge";boBox1.DisplayMember = "userName";boBox1.DataSource = dt;同上顺序三:boBox1.DataSource = dt; (都触发)boBox1.DisplayMember = "userName";(都触发)boBox1.ValueMember = "userAge";(只触发SelectedValueChanged事件)SelectedValueChanged触发三次(总是先触发)SelectedIndexChanged,触发两次(设置DisplayMember属性时不触发两种事件)顺序四:boBox1.DataSource = dt; (都触发)boBox1.ValueMember = "userAge";(都触发) 其中SelectedValueChanged触发两次boBox1.DisplayMember = "userName";(都触发)SelectedValueChanged触发四次(总是先触发)SelectedIndexChanged,触发三次(设置DisplayMember属性时不触发两种事件)说明:当设置了DataSource属性后,SelectedValue属性值会默认为第一行(所以会触发SelectedIndexChanged事件和SelectedValueChanged事件),因此,如果不希望ComboBox 自动选择第一行,还需在设置完DataSource 后自行将SelectedValue 设为“”。
Combo的详细用法

Combo的详细用法这篇文章纯属转载的。
至于可信度,自把握哈MFC ComboBox一、入门篇ComboBox (组合框)控件很简单,可以节省空间。
从用户角度来看,这个控件是由一个文本输入控件和一个下拉菜单组成的。
用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输入文本。
下面的例子简要说明如何利用MFC CComboBox Class来操作字符串列表。
1、定义控件对应变量假定已经创建了一个Dialog,并且从控件工具箱将Combo Box 控件拖放到上面。
打开Class Wizard,添加控件对应变量,如:CComboBoxm_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 中。
C# ComboBox控件

C# ComboBox控件
ComboBox(组合框)控件通常被看作是把一个TextBox和一个ListBox组合在一起的结果,因此同时具有上述两种控件的特点:用户即可以ComboBox中进行输入,也可以在其附带的一个下拉列表框中选取某项内容。
通常ComboBox控件的下拉列表部分被折迭,因此能够更有效地利用窗体的客户区。
ComboBox控件的属性大部分都来自于文本框或列表框,在用法上也没有什么区别。
组合框(ComboBox)合并了许多控件,例如TextBox、Button和ListBox控件等。
与ListBox控件不同,组合框从来都不能在列表中选择多个选项,但可以在ComboBox的TextBox部分输入新选项。
通常情况下,ComboBox控件可以节省对话框中的空间,因为组合框中可见的部分只有文本框和按钮部分。
当用户单击文本框右边的箭头按钮时,将会打开一个列表,用户可以在其中进行选择。
当用户完成选择后,列表框就会消失,回到原来的显示状态。
如表8-23、8-24所示分别为ComboBox控件的属性与事件:。
combo控件在grid中的用法

combo控件在grid中的用法请参考:如何在GRID中加入复选框?*-----------------------------方法一:1、把GRID的列数改为> 0 &&方法二不需要此项2、右键单击GRID,编辑,在工具条中把checkbox拿到要加入复选框的列中3、右键单击GRID,编辑,然后选择加入复选框的列。
在属性窗口上的“数据”页面上把Grid的Colum(加入复选框的Column)的currentcontrol值改成check1,然后根据你的需要修改Sparse的值,来指定CurrentControl 属性是影响列对象中的全部单元,还是仅影响列对象中的活动单元。
方法二:在Grid的INIT事件中:WITH This.column4.addobject( "Check1 ", "CheckBox ").currentcontrol= 'Check1 '.sparse=.f..Check1.Caption= ' '.Check1.visible=.t.ENDWITH*********************************************************** ********同理可向GRID中添加日历控件及COMBOBOX 控件等GRID的INIT事件WITH This.column3.addobject( "Combo100 ", "ComboBox ").currentcontrol= 'Combo100 '.sparse=.f..Combo100.RowSourceType=0.Combo100.visible=.t.ENDWITHselect 表名 &&此表可以是Grid的数据源也可以不是Grid的数据源scanbo100.additem(字段名)endscan--------------------------------------------------------------------------在表格列中显示控件除了在表格中显示字段数据,还可以在表格的列中嵌入控件,这样就为用户提供嵌入的文本框、复选框、下拉列表框、微调按钮和其他控件。
ComboBox控件的用法教程

ComboBox控件的⽤法教程前⾯我们了解了ListBox(列表框)控件的使⽤,在中还有⼀个与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)将文本框控件(TextBox)与列表框控件(ListBox)的特性结合为一体,兼具文本框控件与列表框控件两者的特性.它可以如同列表框一样,让用户选择所需项目;又可以如文本框一样通过输入文本来选择表项.组合框默认的名称是 ComboX(X为阿拉伯数字 1、2、3 ,等等),规则的命名方式为:Cb oX(X为用户自定义的名字,如 CboName、CboColor ,等等).组合框在 VB 工具箱面板中的图标如图一:图一一、组合框控件的主要属性:列表框控件的大部分属性同样适合于组合框,此外,组合框还有一些自己的一些属性:1、Style(类型)属性组合框共有三种 Style :当值为 0 ,组合框是“下拉式组合框”(DropDown Combo),与下拉式列表框相似,但不同的是,下拉式组合框可以通过输入文本的方法在表项中进行选择,可识别 Dropdown 、C lick、Change 事件,如图二:图二当值为 1 ,组合框称为“简单组合框”(Simple Combo),由可以输入文本的编辑区与一个标准列表框组成,可识别 Change 、DblClick 事件,如图三:图三当值为 2 ,组合框称为“下拉式列表框”(Dropdown ListBox),它的右边有个箭头,可供“拉下”或“收起”操作.它不能识别 DblClick 及 Change 事件,但可识别 Dropdown 、Click 事件,如图四:图四综上所述,如果你想让用户能够输入项目,则应将组合框设置成 0 或 1 ,如果只想让用户对已有项目进行选择,则应将组合框设置成 2 .2、Text(文本)属性:本属性值返回用户选择的文本或直接在编辑区域输入的文本,可以在界面设置时直接输入,如图五:图五但要显示多个选项,不能简单地用 Text 属性指定,因为后一选项会覆盖前面的选项,这时,常常要用到窗体的载入事件.(Form_Load)Form_Load 的意思是,在打开窗口的同时,将指定的内容载入.详细情况见后面的窗体篇.二、组合框的事件:根据组合框的类型,它们所响应的事件是不同的.例如,当组合框的 Style 属性为 1 时,能接收 DblClick 事件,而其他两种组合框能够接收 Click 与 Dropdown 事件;当 Style 属性为 0 或 1 时,文本框可以接收 Change 事件.三、组合框的方法:跟列表框一样,组合框也适用 AddItem 、Clear 、RemoveItem 方法.四、组合框举例:有如图六这样一个应用程序:图六在名为 CboChoose 的下拉组合框中任意选择一种机型,自动会在名为 LblShow 的标签上显示出来.程序代码如下:窗体:下拉式组合框的 Click 事件:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一个combo由一个文本(text)和一个表(list)构成。
用户可以从list中选择一个条目,也可以在text中输入一个条目(非READ_ONLY样式的)。
combo的功能与list的功能相仿,但更节省窗口空间。
Styles:
DROP_DOWN, READ_ONLY, SIMPLE
Events:
Selection,
DefaultSelection,
Modify,
Verify,
OrientationChange
注意: DROP_DOWN 和SIMPLE两种样式只能选择其一.
方法
关于combo的文本的方法
__get / set文本
String getText() 返回一个串,它是combo的文本中的内容的拷贝
void setText(String string) 设置combo的文本的内容成为string。
__选择
void clearSelection() 清除combo文本部分的选择
Point getSelection()
返回一个点,x坐标是combo的文本中被选中的第一个字符的位置,y坐标是被选中的最后一个字符的位置。
void setSelection(Point selection) 选择combo的文本从selection.x到selection.y的字符。
__拷贝粘贴
void cut()
void copy()
void paste()
__文本容量
int getTextLimit() 返回combo的文本能容纳的字符个数
void setTextLimit(int limit) 设置combo的文本能够容纳的最大字符数。
关于combo的list的方法
__增减表的item
void setItems(String[] items) 用数组items设置combo的list。
void add(String string) 加string到combo的表尾
void add(String string, int index) 加string到combo表的index位置
void remove(int index) 删除第index个条目
void remove(int start, int end) 删除从start开始到end结束的所有条目
void remove(String string) 检索combo的list,如果找到string,删除。
void removeAll() 删除combo的list中所有条目。
void setItem(int index, String string) 把combo的list的第index个条目设置为string。
__获取item
String getItem(int index) 返回combo表的第index个条目
String[] getItems() 返回combo表的所有条目的数组
int getItemCount() 返回combo表的条目个数
检索list
int indexOf(String string) 在combo的list中检索string,返回index。
int indexOf(String string, int start) 从combo的list的start处开始查找string。
__选择
void select(int index) 选择combo的list中第index个条目
void deselect(int index) 清除combo表已选条目的选择状态
void deselectAll() 清除combo表所有已选条目的选择状态.
int getSelectionIndex() 返回选中条目在combo的list的index。
没有选择,返回-1.
__list的可见性
boolean getListVisible() 返回true,如果combo的list可见.
void setListVisible(boolean visible) 设置combo的list可见,如果visible=true。
int getVisibleItemCount(int count) 获取DROPDOWN样式的combo的可见区域能够显示的条目个数。
void setVisibleItemCount(int count) 设置DROPDOWN样式的combo的可见区域能够显示的条目个数。
关于combo整体的方法
int getOrientation() 返回combo的方向
void setOrientation(int orientation) 设置combo方向,它必须是SWT.LEFT_TO_RIGHT 或SWT.RIGHT_TO_LEFT之一.。