(已读)第十二章列表框和组合框
- 格式:docx
- 大小:20.23 KB
- 文档页数:7
1.在窗体上画一个文本框(其名称为TEXT1)和一个标签(其名称为LABEI1),程序运行后,如果在文本框中输入指定的信息,则立即在标签中显示相同的内容,以下可以实现上述操作的事件过程是( )。
(2006.9)A)private sub textl_click() B) private sub textl_change()LabeLl. caption= textl. Text LabeI.l. caption= textl. textEnd sub end subC)private sub LabeLl_change() D)private sub LabeLl_click()LabeLl. caption= textl. text LabeLl. caption—textl. textEnd sub end sub2.设窗体上有一个命令按钮数组,能够区分数组中各个按钮的属性是( )。
(2010.9) A) Name B)Index C) Caption D) Left3.窗体上有Listl.List2两个列表框,Listl中有若干列表项(见图),并有下面的程序:Private Sub Comandl_Click()For k= Listl. ListCount-l To O Step -lIf Listl. Selected(k) ThenList2. AddItem Listl. List(k)Listl. RemoveItem kEnd IfNext kEnd Sub程序运行时,按照图示在Listl中选中2个列表项,然后单击Commandl命令按钮,则产生的结果是( )。
(2009.9)A)在List2中插入了“外语”、“物理”两项B)在Listl中删除了“外语”、“物理”两项C)同时产生A)和B)的结果D)把Listl中最后1个列表项删除并插入到List2中4.窗体上有名称为Commandl的命令按钮和名称为Textl的文本框Private Sub Commandl_Click()Textl.Text -”程序设计”Textl.SetFocusEnd SubPrivate Sub Textl_GotFocus()Textl. Text一”等级考试”End Sub运行以上程序,单击命令按钮后( )A)文本框中显示的是“程序设计”,且焦点在文本框中B)文本框中显示的是“等级考试”,且焦点在文本框中C)文本框中显示的是“程序设计”,且焦点在命令按钮上D)文本框中显示的是“等级考试”,且焦点在命令按钮上5.设窗体上有一个列表框控件Listl,含有若干列表项。
[教案](七)列表框、组合框和滚动条授课方式:讲授法授课学时:4学时教学目的:通过本次课的学习,学生应该掌握列表框、组合框和滚动条控件的常用属性、方法和事件,并能够灵活的运用。
教学重点和难点:1.列表框和组合框的属性和方法;2.滚动条的常用属性和事件。
教学过程:列表框、组合框和滚动条一、列表框(ListBox)和组合框(ComboBox)1.作用介绍列表框和组合框的基本作用,以及他们使用环境的区别。
2.两者共有的重要属性使学生掌握以下5个共有属性(1)List(2)ListIndex(3)ListCount(4)Sorted(5)Text3.列表框特有的重要属性通过例题讲解列表框特有的4个属性:(1)Columns(2)ItemData(3)MultiSelect(4)Selected4.组合框特有的重要属性通过例题讲解决定组合框的类型和行为style属性。
5.方法介绍两者共有的以下三种方法--AddItem方法、RemoveItem和Clear方法。
(1)方法可以实现的功能(2)方法调用的语法格式6.事件列表框响应Click及DblClick事件组合框响应Click事件,只有Style=1的时候简单二、滚动条(ScrollBars)1.种类:介绍两种滚动条--水平滚动条(HScrollBar)和垂直滚动条(VScrollBar)结构上的区别。
2.常用属性:通过例题讲解它的常用5个属性--Value属性、Max属性、Min属性、LargeChange 属性和SmallChange属性3.事件--Change事件和Scroll事件(1)事件的具体应用情况(2)区别两种事件触发条件的区别学生作业:上机实验五:1.列表框、组合框2.滚动条[讲稿](七)列表框、组合框和滚动条一、列表框(ListBox)和组合框(ComboBox)(一)、列表框ListBox1、作用:显示项目列表,用户可从中选择一个或多个项目。
计算机二级VB考点复习指导:列表框和组合框
(一)列表框
1.属性
列表框所支持的.标准属性包括Enabled、FontBold、FontItalic、FontName、FontUnderline、Height、Left、Top、Visible、Width。
此外,列表框还具有以下特殊属性:
(1)Columns
(2)List
(3)ListCount
(4)ListIndex
(5)MultiSelect
(6)Selected
(7)SelCount
(8)Sorted
(9)Style
(10)Text
2.列表框事件
列表框接收Click和DblClick事件,但有时不用编写Click事件过程代码,而是当单击一个命令按钮或发生DblClick事件时,读取Text 属性。
3.列表框方法
列表框可以使用AddItem、Clear和RemoveItem等方法,用来在运行程序期间修改列表框的内容。
(二)组合框
组合框(ComboBox)是由列表框和文本框的特性组合而成的控件。
或兼有列表框和文本框两者特性的控件。
1.组合框属性
列表框的属性基本上都可用于组合框,此外它还有自己的一些属性。
(1)Style
(2)Text
2.组合框事件
3.组合框方法
【2015计算机二级VB考点复习指导:列表框和组合框】。
上机练习:第1题:编制一个表单EXAM1.SCX,完成数字时钟显示功能(界面如图例所示)。
参考书P311T5、T9.具体要求如下:1.表单的位置在左上角,可移动,表单的边框为无边框;2.表单将自动以1秒间隔动态显示系统时间;参考答案:表单的标题属性Caption设置为“数字时钟”;表单的位置属性Left为0;Top为0;Movable为.T.;表单的BorderStyle属性为“0—无边框”;时钟控件Timer1的Interval属性为1000。
文本框Text1的背景色Backcolor为RGB(255,255,255);FONTNAME为“隶书”。
时钟控件Timer1的Timer事件代码:s=substr(time(),1,2)f=substr(time(),4,2)m=substr(time(),7,2)thisform.text1.value=s+"时"+f+'分'+m+'秒'第2题:编制一个表单EXAM2.SCX,根据要求,用表单设计器建立一个时钟表单(界面如图例所示)。
具体要求如下:1.表单只有标题为“信息窗”。
2.当时钟的分为奇数时,表单的背景色为绿色,偶数时为蓝色。
3.显示的内容为只读。
参考答案:1.表单的标题属性Caption设置为“信息窗”;2.时钟控件Timer1的Timer事件代码:S=SUBSTR(TIME(),1,2)F=SUBSTR(TIME(),4,2)M=SUBSTR(TIME(),7,2)MN=V AL(f)IF INT(MN/2)=MN/2THISFORM.backCOLOR=RGB(0,0,255)ELSETHISFORM.backCOLOR=RGB(0,255,0)ENDIFthisform.text1.value=time()第3题:编制一个表单EXAM3.SCX,设计一个24秒倒记时表单,记时精度1秒:1)编辑状态如图T1;初始运行状态如图T2;2)单击“开始”按钮后开始倒记时,如图T3所示;4)单击“暂停”按钮时停止记时,如图T4所示;5)当倒记时到0秒时,自动停止记时,并且“开始”按钮不可用,如图T5所示。
第十二章列表框和组合框列表框是显示一系列项供用户选择的控件,对选中的项可以进行后续的处理。
用户选择可以是多项的,但本章的例程设计为单选的。
组合框是一个编辑框带一个可以下拉的列表框,用户在下拉框中选择的项会进入编辑框中,再进行后续处理,选择也可以用键盘的光标键。
在编辑框中也可以直接输入。
本章要点1 列表框的设计、项的添加和删除2 组合框的设计和使用12.1 ListCombo程序运行时的界面和功能chap12-01List1在初始化时加入了六项。
点击[<]按钮就把选中的项移动到List2中去。
点击[>]按钮则相反。
点击[<<]和[>>]按钮则移动全部项。
用[清除列表]按钮可删除List1的全部项。
[加入到]按钮把你选中的在编辑框中项添加到List1中,[加入全部]按钮则把组合框设置的所有项添加到List1中。
组合框预置了“中国”这一项,但没有设计删除功能。
列表框和组合框都有一个从0开始的整数索引和一个用于显示的文本。
12.2 对话框界面设计按控件属性表设计界面。
控件类型标题ID and GenaralStylesExtended StyleslistBoxIDC_LIST1显示checked选择Simple,BorderVirteber scroll无listBoxIDC_LIST2显示checked选择Simple,Border Virteber scroll无ComboBoxIDC_CONTRIES_COMBO 显示checked类型:Drop list Virteber scrollStatic edgeButton<IDC_MOVE_BUTTON无无Button>IDC_BACK_BUTTON无无Button<<IDC_MOVEALL_BUTTON 无无Button>>IDC_BACKALL_BUTTON 无无Button清除列表IDC_CLEAR_BUTTON无Client edgeButton加入到IDC_ADD_BUTTON无Client edgeButton加入全部IDC_ADDALL_BUTTON无Client edgeButton退出IDC_EXIT_BUTTON无Client edgeStatic edgeModal Frame属性表中列出的表示“选中”,TAB复选框都要选中,就省略了。
组合框可以在DATA属性页中设置项的文本,本例采用这种方法。
其数据是:中国,美国,俄罗斯,英国,法国,德国,印度,巴基斯坦,日本,加拿大,澳大利亚,韩国,伊朗,伊拉克逗号处要改为换行,换行用Ctrl+<回车键>。
设计好的界面如图chap12-02所示。
chap12-0212.3 设计变量和编写代码1 为三个列表框和组合框引进变量因为我们要对列表框的项进行操作,所以要申明三个对象类型的变量m_myList1m_myList2m_myCombo。
2 定义一个字符串数组定义一个字符串数组m_myItems用来存放组合框的项的文本。
在对话框的头文件的类CListCombaDlg的构造函数中申明:CString m_myItems[20];3 给初始化函数编写代码在OnInitDialog()中我们要从组合框控件获取项目的文本,给字符串数组m_myItems赋值。
再用它的前六项为List1初始化。
最后为组合框设置项“中国”为预选项。
从组合框控件获取项用函数GetLBText(index, str),它把索引值为index的项的文本拷贝给str。
给列表框赋值用AddString(string)函数,它在列表的尾部增加一项。
类似地还可以用插入函数InsearString(...)。
在// TODO: Add extra initialization here 这行的后面,我们添加如下代码:int count = m_myCombo.GetCount();//获取组合框的项数int i =0;//从组合框控件获取项的文本for(i =0; i<count; i++)m_myCombo.GetLBText(i, m_myItems[i]);//List1初始化,六项for(i =0; i<6 ; i++)m_myList1.AddString(m_myItems[i]);// 130) : error C2039: 'AddString' : is not a member of 'CString'变量类型有问题//设置组合框默认选择项为"中国"m_myCombo.SetCurSel(0);这段调了很久4 给4个移动按钮写代码MOVE按钮[<]的功能是从List1中得到用户选定顶的索引号,再从这索引号获取选定顶的文本,然后删除这一项,在List2中添加一项。
当前项获取索引号函数index=GetCurSel()返回整数。
获取选定项的文本用函数GetText(index, item),它把指定项的文本拷贝到字符串item 中。
OnMoveButton()函数的完整代码如下:void CListCombaDlg::OnMoveButton(){CString item;int index = m_myList1.GetCurSel(); //获取选定顶索引号m_myList1.GetText(index, item); //获取选定顶的文本m_myList1.DeleteString(index); //删除一项m_myList2.AddString(item); //添加到List2中m_myList1.SetCurSel(0); //设置首项为当前项}MOVEALL按钮的代码与上面的类似,加上循环语句就行。
void CListCombaDlg::OnMoveallButton(){// TODO: Add your control notification handler code hereCString item;int index =0 ;while(m_myList1.GetCount() >0){m_myList1.GetText(0, item);m_myList1.DeleteString(0);m_myList2.AddString(item);};}BACK和BACKALL按钮的代码和上面的一样,只要把m_myList1和m_myList2对调就行。
5 从组合框向列表框1加入当前项的代码这与列表框不同的是获取文本的函数名不大一样,用函数GetLBText,其余都相同。
在OnAddButton()中加入代码:void CListComboDlg::OnAddButton(){CString item;int i=m_myCombo.GetCurSel();m_myCombo.GetLBText(i,item);m_myList1.AddString(item);}从组合框向列表框1加入全部项的代码如下:void CListCombaDlg::OnAddallButton(){//Clear old items in Linst at firstCString item;while(m_myList1.GetCount()>0)m_myList1.DeleteString(0);int n = m_myCombo.GetCount();//Add all itemsfor(int i=0; i<n; i++){m_myCombo.GetLBText(i, item);m_myList1.AddString(item);}}6 [清除列表]和[退出]按钮的代码[清除列表]的按钮的代码:while(m_myList1.GetCount()>0)m_myList1.DeleteString(0);[退出]按钮的代码:OnOK();12.4 编译和运行至此,我们完成了界面设计和代码编写,可以编译和Build了。
编译通过就可以在运行中测试程序,检查是否满足我们的设计要求。
但是,代码编写常常会有许多错误,编译器会报告一大堆错误。
虽然指出了错误所在的行,但要明白是什么错误还是很费劲的。
如果我们在完成一部分工作后就编译一次,错误就比较少,容易找到和纠正。
所以我们分以下几步来编译。
1、界面完成后编译一次,这时运行可以看到组合框有了信息和可以选择了。
2、对话框初始化编写后编译和运行一次,这时可以看到列表框有了信息。
3、MOVE按钮写了代码后编译和运行一次,这时可以测试移动功能是否正确。
如果成功,那这代码可以放心地复制到其他三个按钮去了。
4、全部完成后的编译和运行。
12.5 小结1 列表框和组合框属性设置中有类型选择组合框有三种情况:Simple, Dropdown, Drop List。
Simple类型的组合框的列表框部分是固定显示的,不能下拉;而其余两种带一个下拉手柄。
设计中别忘记添加滚动条。
Dropdown与Drop List的区别是后者的编辑框不能输入。
列表框也有三种情况:Simple, Multiple, Extended,它们决定了用户选取项的方法。
Simple模式只能够选取单项,Multiple模式可以按Ctrl键+鼠标左键选取多个项,而Extended则可以通过鼠标拖处矩形一次选取连续的项,也可以加按Ctrl键作多次选择。
2 列表框在属性页不能设置项的文本(字符串),而组合框能。
3 列表框和组合框中的“项”都有索引号(0,1,2,...)和文本(在窗口显示)。
两者都有成员函数来获取和设置这些信息。
得到文本的函数名称不一样,列表框是GetText(),组合框是GetLBText()。
字母LB的意思是ListBox,GetLBText的意思是“从自身的列表框中获取文本”。
4 列表框和组合框常用的几个函数原型列表框的取索引号和文本的函数原型获取文本:void GetText( int nIndex, CString& rString ) const;用于单选模式的获取和设置索引号:int GetCurSel( ) const;int SetCurSel( int nSelect );用于多选模式的:int GetSel( int nIndex ) const;上式如果nIndex项是被选中的,就返回它的索引号,否则返回0。
int SetSel( int nIndex, BOOL bSelect = TRUE );bSelect = TRUE就选中索引为nIndex的项,如是FALSE,则取消“选中”:如果nIndex=-1,就是全“选中”或全“不选中”。