DataList控件的使用

DataList控件的使用
DataList控件的使用

DataList控件的使用

使用DataList控件

本章内容:

? 1、理解事件冒泡

? 2、使用模板

? 3、在DataList中显示数据

? 4、在DataList中创建多列

? 5、捕获DataList控件中产生的事件

? 6、选择DataList中的项

? 7、使用DataList控件中的DataKeys集合

? 8、编辑DataList中的项

本章介绍在https://www.360docs.net/doc/2b11222592.html,框架中功能最强大的两个控件(DataList控件和DataGrid控件)之一的DataList控件。我们将深入探讨DataList控件,学习如何使用该控件显示数据以及编辑数据库数据。

一、理解事件冒泡

在https://www.360docs.net/doc/2b11222592.html,框架包含三个支持事件冒泡的标准控件:Repeater、DataList和DataGrid 控件。这些控件可以让你捕获其子控件的时间。当子控件产生一个事件时,事件就“冒泡”传给包含该子控件的容器控件,并且容器控件就可以执行一个子程序来处理该事件。

二、使用模板

在前一章中我们已经介绍过Repeater控件的五个模板(ItemTemplate、AlternationgItemTemplate、SeparatorTemplate、HeaderTemplate、FooterTemplate),可以格式化控件的输出。在DataList控件中除了支持Repeater控件中的五个模板以外,还支持如下两个模板:

1、SelectedItemTemplate:控制如何格式化被选定的项

2、EditItemTemplate:控制如何格式化被编辑的项。

当选定DataList中选中一个项时(即DataList的SelectedIndex属性值为当前选定项的索引值),将显示SelectedItem模板,当在DataList中选择一个项来编辑(即DataList

的EditItemIndex属性值为当前选定项的索引值)时,将显示EditItem模板。

三、在DataList中显示数据:

可以像Repeater控件那样来用DataList显示数据库表中的记录。但是,与Repeater控件不同的是:DataList控件的默认行为是在HTML表格中显示数据库记录。

如下程序清单演示如何显示pubs数据库中authors表中的数据。

<%@ Page Language="C#"%>

<%@ Import Namespace="System.Data.SqlClient" %>

DataList.aspx

ID="DataList1"

Runat="Server">

<%#DataBinder.Eval(Container.DataItem, "au_fname" )%>

在DataList中显示记录时,authors表中每行都显示在独立的HTML表格中,只要你愿意,也可以修改其RepeatLayout属性把DataList的项显示在HTML的

中。在默认情况下,RepeatLayout属性值为Table。如果把RepeatLayout属性设为Flow,那么每个项就显示在
中。

当RepeatLayout属性为Table时,通过设置GridLines属性可以在每个单元格周围显示线条。GridLines属性可选值有:Both / Horizontal / Vertical

四、在DataList中创建多列

DataList的一个好处的特征是可以以多个列显示数据现。通过设置其RepeatColumns和RepeatDirection属性,可以控制DataList的列的布局。

RepeatColumns属性决定要显示的列的数量。比如,如果要在DataList中显示四列的项,那么可以把这个属性设为4。

RepeatDirection属性句顶列是按水平或垂直方向来重复。在默认情况下,RepeatDirection值为Vertical(垂直的,纵向的),因此,如果RepeatColumns值为4,则列就像这样显示:

Column 1 Column3 Column5 Column7

Column 2 Column4 Column6 Column8

如果把RepeatDirection设为Horizontal(水平的,横向的),而且RepeatColumns值为4,那么列就像这样显示:

Column1 Column2 Column3 Column4

Column5 Column7 Column6 Column8

注意,即使RepeatDirection值为Vertical,还是显示为4个列。RepeatColumns永远是指重复的列的数量,而不是行的数量。

五、捕获DataList控件中产生的事件

正如第一小节中提到的那样,DataList控件支持事件冒泡,可以捕获DataList内包含的控件产生的事件,并且通过普通的子程序处理这些事件。讲到这里有些人可能不太明白事件冒泡的好处所在,这样,我们反过来思考:如果没有事件冒泡,那么对于DataList内包含的每一个控件产生的事件都需要定义一个相应的处理函数,如果DataList中包含10000个控件呢?或者更多呢?那我们得写多少个事件处理程序。所以有了事件冒泡,不管DataList 中包含多少个控件,我们只需要一个处理程序就可以了。DataList控件支持五个事件:

1) EditCommand:由带有CommandName=”edit”的子控件产生

2) CancelCommand:由带有CommandName=”cancel”的子控件产生

3) UpdateCommand:由带有CommandName=”update”的子控件产生

4) DeleteCommand:由带有CommandName=”delete”的子控件产生

5) ItemCommand:DataList的默认事件

有了这五个事件,那么当我点击了DataList控件中的某一个按钮的时候,应该触发哪一个事件呢?什么时候才触发它们呢?在https://www.360docs.net/doc/2b11222592.html,中有三个控件带有CommandName属性,分别是Button、LinkButton和ImageButton,可以设置它们的CommandName属性来表示容器控件内产生的时间类型。比如,如果设置DataList中的一个LinkButton的CommandName属性为“update”,那么点击此按钮的时候,将会触发DataList的CancelCommand事件,我们可以将相关处理代码写到对应的事件处理程序中去。

如下程序清单演示了点击DataList中三个CommandName分别为edit、delete、update 的LinkButton按钮。当点击不同的按钮时,在DataList中产生不同的事件,执行不同的程序:

<%@ Page Language="C#" %>

<%@ Import Namespace="System.Data.SqlClient" %>

DataListEvents.aspx

ID="lblMessage"

BackColor="yellow"

Runat="Server" />

ID="DataList1"

OnItemCommand="DataList1_ItemCommand" OnEditCommand="DataList1_EditCommand" OnDeleteCommand="DataList1_DeleteCommand" OnUpdateCommand="DataList1_UpdateCommand" GridLines="Both"

CellPadding="4"

Runat="Server">

<%#DataBinder.Eval(Container.DataItem, " au_fname " )%>

Text="Edit!"

CommandName="edit"

Runat="Server"/>

Text="Delete!"

CommandName="delete"

Runat="Server"/>

Text="Update!"

CommandName="update"

Runat="Server"/>

在DataList中显示的三个LinkButton控件分别与相应的程序相关联。当点击名为delete 的LinkButton控件的时候,就触发DataList控件DeleteCommand事件,该事件与DataList1_DeleteCommand函数相关联。

大家注意到与DataList关联的函数都带有一个DataListCommandEventArgs的参数。该阐述表示从DataList传递给该函数的信息。DataListCommandEventArgs具有如下属性:

? CommandArgument:表示来自于产生该事件的控件的CommandArgument属性值。? CommandName:表示产生该事件的命令名称。

? CommandSource:表示产生该事件的DataList控件。

?Item:表示来自DataList的项。就是DataList中发生事件的那一项。该属性非常有用,在后面的章节中会经常使用到!

六、选择DataList中的项

在第一小节中我们讲到DataList控件比Repeater控件多两个模板,SelectedItemTemplate模板可以格式化DataList中被选定的项的格式。

数据绑定到DataList后,DataList中的每一项都有一个索引号,第一项的索引为0,依次往下编号。我们可以利用索引来确定DataList中具体的项。

DataList默认以ItemTemplate或ItemTemplate+AlternatingItemTemplate模板显示数据项,当DataList的SelectedIndex属性(该属性默认值为-1,表示不显示SelectedItemTemplate模板)的值为DataList某一项的索引的时候,对应的项将会以SelectedItemTemplate模板显示。

如下程序清单使用DataList来显示一列来自于Authors数据库表中的作者的姓。每个作者的姓作为一个LinkButton控件呈现。当选择一个作者时,被选定的作者就使用SelectedItemTemplate来显示。

<%@ Page Language="C#" %>

<%@ Import Namespace="System.Data.SqlClient" %>

DataListSelected.aspx

ID=" DataList1"

OnItemCommand=" DataList1_ItemCommand"

Runat="Server">

Text='<%#DataBinder.Eval(Container.DataItem, "au_lname" )%>'

Runat="Server" />

<%#DataBinder.Eval(Container.DataItem, "au_lname" )%>

上面代码中DataList1.SelectedIndex = e.Item.ItemIndex语句:表示把被选项的索引赋值给DataList控件的SelectedIndex属性。然后调用BindDataList()进行数据的重新绑定。

答疑:在一次课上,讲解ItemCommand事件和DeleteCommand事件的时候,有学生问我为什么每次点了CommandName为“delete”的按钮的时候ItemCommand事件也被触发了呢?因为我平时写程序的时候没注意这个问题,一下子还真把我难住了!回办公室后反复做了实验(通过打开页面的Trace跟踪,在相应的事件里用Trace.Warn()方法输出),最后得出结论:

? ItemCommand事件是DataList控件产生的默认事件,任何DataList控件中CommandName为delete/cancel/update/edit的按钮被点击后,首先触发的是ItemCommand事件,然后才是相应的事件。

?但是当DataList控件中存在一个普通按钮,点击后触发ItemCommand事件,假设执行功能为选择当前项,此时如果点击了CommandName为edit的按钮,将当前项显示为编辑状态。这个时候并没有出现当前行既被选中又被编辑的情形,这和以上的结论(先触发

ItemCommand事件)好象相违背。事实上这并不矛盾,因为DataList控件中的项同一时刻只能显示一个EditItemTemplate或SelectedItemTemplate模板,所以执行过程应该是这样的。点击了CommandName为edit的按钮后首先触发了ItemCommand事件,将当前的项显示为SelectedItemTemplate模板,然后再触发EditCommand事件,将当前的项显示为EditItemTemplate模板,覆盖了前面已经显示的SelectedItemTemplate模板,只不过因为速度太快,肉眼看不出这个过程而已!

七、使用DataList控件中的DataKeys集合

在选择DataList中的一个项时,通常需要获取与这个项相关联的主键的值。可以使用DataKeys集合来获取与一个项想关联的主键的值。

假设要在DataList中显示一个名为Authors的数据库表,其中包含两个名为au_id和

au_fname的列,当拥护选择DataList中的一个项时,你要提取与被选项相关联的au_id 列的值,要实现这个操作,则需要设置DataList控件的DataKeyField属性:

ID="DataList1"

DataKeyField="au_id"

OnItemCommand="DataList1_ItemCommand"

Runat="Server">

如果把数据库表的主键类的名称赋值给DataKeyField属性,那么当绑定DataList到Authors的数据表时,一个名为DataKeys的特殊集合就自动生成了。DataKeys集合包含来自数据库表的所以的主键值,起顺序与DataList中的项相同。

注意:只有当所使用的数据表具有单个主键列时,才可以使用DataKeys集合。也就是说不能使用联合主键。

在创建了DataKeys集合后,就可以通过传递项的索引值给DataKeys集合来获取DataList中与相关项关联的主键值。比如,要获取由DataList显示的第三项的主键值,就可以是使用语句:DataList1.DataKeys[2] // DataList1为DataList控件的ID值

如果要在DataList控件的事件处理函数中发生事件的项的主键值,则可以使用语句:DataList1.DataKeys[e.Item.ItemIndex] // DataList1为DataList控件的ID值

八、编辑DataList中的项★★★★★

可以使用DataList控件来编辑数据表中的某一条记录,如下图,事实上,在DataList中完成这样的操作非常的方便,不像在asp中需要在多个页面中来回切换。

DataList控件具有一个名为EditItemTemplate的模板,可以在EditItemTemplate中放置表单控件,以便能在DataList中编辑特定的项。当DataList的EditItemIndex属性(该属性默认值为-1,表示不显示EditItemTemplate模板)的值为DataList某一项的索引的时候,对应的项将会以EditItemTemplate模板显示。

注意:在DataList中一次只能有一个项被选定来编辑。

如下程序清单演示了如何编辑DataList的项,其中最主要的部分就是UpdateCommand 事件的处理程序,因为DataList并不会替你处理更新数据表的操作,你必须自己编写所有的代码:

<%@ Page Language="C#" %>

<%@ Import Namespace="System.Data.SqlClient" %>

DataListEdit.aspx

ID="DataList1"

DataKeyField="au_id"

OnEditCommand="DataList1_EditCommand" OnCancelCommand="DataList1_CancelCommand" OnDeleteCommand="DataList1_DeleteCommand" OnUpdateCommand="DataList1_UpdateCommand" RepeatColumns="4"

GridLines="Both"

CellPadding="10"

EditItemStyle-BackColor="lightgrey"

Runat="Server">

<%#DataBinder.Eval(Container.DataItem, "au_lname" )%>

- <%#DataBinder.Eval(Container.DataItem, "phone" )%>


Text="Edit!"

CommandName="edit"

Runat="Server" />

Last Name:


ID="txtLastName"

Text='<%#DataBinder.Eval(Container.DataItem, "au_lname" )%>' Runat="Server" />

Phone:


ID="txtPhone"

Text='<%#DataBinder.Eval(Container.DataItem, "phone" )%>'

Runat="Server" />

Text="Update!"

CommandName="update"

Runat="Server" />

Text="Delete!"

CommandName="delete"

Runat="Server" />

Text="Cancel!"

CommandName="cancel"

Runat="Server" />

运行以上程序,点击其中某一项中的edit按钮的时候,将触发DataList控件的EditCommand事件,通过执行语句DataList1.EditItemIndex = e.Item.ItemIndex;将当前项显示为EditItemTemplate模板,在EditItemTemplate模板中点击cancel按钮的时候,将触发DataList控件的CancelCommand事件,通过执行语句

DataList1.EditItemIndex = -1; 将当前项恢复显示为ItemTemplate模板;

当点击update按钮的时候,将触发DataList控件的UpdateCommand事件,在UpdateCommand事件的处理程序中,我们需要取得当前项对应的主键值及修改之后的值才能够完成更新,通过执行语句

DataList1.DataKeys[(int)e.Item.ItemIndex].ToString();来获取当前主键值(前提是指定了DataList1的DataKeyField属性值为主键字段),由于DataKeys集合返回数据类型为object类型,我们还需要调用其ToString()方法来转换成字符串类型。通过执行语句(TextBox)e.Item.FindControl( "txtLastName" )来获得更新后的au_lname的值,FindControl(”控件ID”)方法通过检索当前项中包含的特定ID的控件,其返回值类型为Control类型,所以还需要强制将其转换为TextBox类型,如果没有找到该ID的控件,则返回0,最后通过取得的主键值和更新后的字段的值更新数据库表。最后不要忘了重新绑定一下,否则数据库里最新的数据将不会显示出来。

(如果要在更新前对更新后的数据进行验证,则可以在EditItemTemplate模板中加入验证控件进行验证。)

本章我们讨论了https://www.360docs.net/doc/2b11222592.html,框架中包含的两个功能最强大的控件之一DataList,主要学习了一些公共属性、时间冒泡、模板和DataKeys集合。其中最主要的是如何编辑DataList中的项,再以后我们学习DataGrid控件的时候,我们还会接触一些高级特性,如分页、排序等。

VB常用控件习题与解答

常用控件习题与解答 一、填空题 1.在图片框上放置的控件称为图片框的(子)对象,而窗体是图片框的(父)对象。 2.窗体的“名称”(Name)属性只能在(属性窗口中)设置。 3.在程序中设置窗体Form1的Caption属性为"主窗体",使用的赋值语句是(Form1.Caption="主窗体")。 4.当窗体的Enabled属性为(True)时,指定窗体响应事件。 5.窗体的Unload事件是在QueryUnload事件发生之(后)发生。 6.程序中,把当前窗体移动到屏幕左上角使用的方法为(Move0,0)。 7.在窗体Form1中坐标为(1600,800)的位置上输出字符串“Visual Basic 6.0”使用的语句为(Form1.Currrentx=1600)、(Form1.Currenty=800)、和(Form1.Print "VisualBasic6.0")。 8.若使文本框有边框,需设置BorderStyle属性的值为(1)。 9.在程序运行期间,用户可以用文本框显示信息。文本框接收输入的内容的属性是 (Text)。 10.若使文本框内能够接受多行文本,则要设置Multiline属性的值为(True)。 11.要把图形文件“C:\sample\diannt.jpg”装载到图片框Picture1上,使用的语句为(Picturel.Picture=LoadPicture("C:\sample\diannt.jpg"))。 12.若使图片框自动调整大小以适应装入的图形,则要设置Autosize属性的值为(True)。 13.除了在程序使用LoadPicture函数装载图形外,还可以在设计阶段通过修改(Picture)属性装载图形。 14.若程序中要把一些文本内容输出到图片框PictureBox,应使用(Print)方法。 15.当单选按钮OpdonButton的Value属性为(False)时,表示该单选按钮处于未选中状态。 16.若使命令按钮Command1重新生效,则使用的赋值语句为(Command1.Enabled=True)。 17.若使命令按钮不能接收和响应任何事件,可以设置Visible属性的值为(False)。 18.只有控件对象的Enabled和Visible属性值都为(True)时,该控件对象才能接受焦点。 19.Tab顺序是由建立控件时的(先后顺序)确定的。 20.设置框架Frame上的文本内容需要使用(Caption)属性。 21.在框架上可以设置一组相关控件,这些控件作为框架的(子)控件,它们具有总体的激活/屏蔽特性。 22.若屏蔽框架上的控件对象,则需设置(Enabled)属性的值为False。 23.列表框ListBox中项目的序号从(0)开始,到(Listcount-1)结束。 24.要显示列表框List1中序号为3项目内容,语句为(PrintList1.List(3))。

窗体中的常用控件 单选3分

窗体中的常用控件单选3分 1.在计算机控件中,每个表达式前都要加上("=") 2.用于显示更新数据库中的字段的控件类型是(绑定型) 3.关于控件的叙述,(选项组不能设置为表达式)的说法正确 4.(表)不是窗体控件 5.纵栏式窗体同一时刻能显示(一条记录) 6.无论是自动创建窗体还是报表,都必须选定要创建该窗体或报表基于的(报表) 7.没有数据来源的控件类型是(非绑定型) 8.关于控件的叙述,(在窗体设计视图窗口中的工具箱中只能看到部分控件)说法错误 9.能够接受数字型数据输入的窗体控件是(文本框) 10.在教师信息输入窗口中,为职称字段提供"教授""副教授""讲师"等选项供用户直接选择,应使用控件是(组合框) 11.要用文本框来显示当前日期,应设置文本框的控件来源属性是(=Data()) 12.窗口事件是指操作窗口时所引发的事件,(取消)不属于窗口事件 13.如果想再加入控件时,控件自动与网格对其,则应在加入控件前,执行"格式(对其网格)"命令 14.当窗体的内容比较多无法在一页中全部显示时,可以使用(选项卡)进行分页,若要进行页面切换,用户只需单击选项卡上的标签即可 15.(选项组)是用来显示一组有限选项集合的控件 16.在学生表中使用"照片"字段存放相片,当使用向导为该表创建窗体时,照片字段使用的默认控件是(绑定对象框) 17.为窗体上的控件设置Tab键的顺序,应选择属性对话框中的(数据选项卡) 18.使用窗体设计视图,不能创建(报表) 19.如果在窗体上输入的数据总是取自某一个表或查询中记录的数据,或者取自某固定内容的数据,可以使用(组合框或列表框)控件 20.(只要单击选项组中所需的值,就可以为字段选定数据值)的说法正确 21.(命令按钮)代表一个或一组操作 22.(可以向组合框中输入新值,而列表框不行) 23.创建窗体的数据源不能是(报表) 24.若要求在文本框中输入文本时达到密码"*"号的显示效果,则应设置的属性是("输入掩码"属性) 25.(窗体设计器)不是窗体的组成部分 26.关于控件的叙述,(在选项组中每次只能选择一个选项)的说法是正确的 27.

实验二 常用控件的使用

实验二常用控件的使用 一、实验目的 (1)掌握常用控件的属性和事件,掌握常用控件的使用,掌握常用控件编程; (2)熟悉并创建Windows窗体应用程序的过程; (3)掌握基于常用控件:MenuStrip、ToolStrip、StatusStrip、Panel、TreeView及 Splitter等构建类似资源管理器的主界面; (4)掌握Timer、ListView、ComboBox、DatePicker等常用控件的属性及应用。 (5)掌握动态构建TreeView节点的方法。 二、实验环境 ?PC机,Windows XP(2000)操作系统及以上; ?Visual Studio 2010(或2008)。 三、实验要求 (1)要求创建类似登录界面,并将登录时输入的信息:用户名传递给主窗体; (2)要求主窗体设置为多文档窗体; (3)要求实现动态创建TreeView控件; (4)实现TreeView节点、MenuStrip、ToolStrip单击事件; (5)实现在StatusStrip上显示登录的用户名、系统当前的日期、实时的时间。 四、实验内容 1、创建基于Windows窗体的应用程序项目; 2、创建登录窗体: (1)用户名和密码输入信息; (2)登录、退出等按钮; (3)实现按钮的单击事件; 3、主窗体的创建 (1)主窗体中要求实现:菜单、工具栏、功能树、状态栏; (2)功能树的创建要求动态创建,建议采用递归算法方式实现,建议树节点 参考信息如下:

(3)主窗体布局参考资源管理的方式实现,具体的布局方式参考下图。 4、数据的模拟 (1)功能树部分的数据可采用二维数组方式; (2)菜单至少建立2个以上菜单项; (3)工具栏至少建立两个以上工具栏项目; 5、部分参考代码: (1) 将字符串类型的窗体名称转换成Form类型 (2) 在主界面显示单文档窗体的参考代码 其中:this代表MDI窗体; GetForm为在(1)中定义的函数。

vb常用控件习题(含问题详解)

1.下列控件中没有Caption属性的是________。 A)框架B)列表框C)复选框D)单选按钮 2.复选框的Value 属性为1 时,表示________。 A)复选框未被选中B)复选框被选中 C)复选框有灰色的勾D)复选框操作有误 3.用来设置斜体字的属性是________。 A)FontItalic B)FontBold C)FontName D)FontSize 4.将数据项“China”添加到列表框List1中成为第二项应使用________语句。 A)List1.AddItem “China”,1 B)List1.AddItem “China ”, 2 C)List1.AddItem 1,“China”D)List1.AddItem 2,“China ” 5.引用列表框List1最后一个数据项,应使用________语句。 A)List1.List(List1.ListCount)B)List1.List(ListCount) C)List1.List(List1.ListCount-1)D)List1.List(ListCount-1) 6.假如列表框List1有四个数据项,那么把数据项“China”添加到列表框的最后,应使用________语句。 A)List1.AddItem 3,“China ” B)List1.AddItem “China ”, List1.ListCount-1 C)List1.AddItem “China ”, 3 D)List1.AddItem “China”,List1.ListCount 7.执行了下面的程序后,列表框中的数据项有________。 Private Sub Form_Click() For i = 1 to 6 List1.AddItem i Next i For i = 1 to 3 List1.RemoveItem i Next i End Sub A)1,5,6 B)2,4,6 C )4,5,6 D)1,3,5 8.如果列表框List1中没有选定的项目,则执行 List1.RemoveItem List1.ListIndex 语句的结果是________。 A)移去第一项B)移去最后一项 C)移去最后加入列表中的一项D)以上都不对 9.如果列表框List1中只有一个项目被用户选定,则执行 Debug.Print List1.Selected(List1.ListIndex)语句的结果是________。 A)在Debug窗口输出被选定的项目的索引值 B)在Debug窗口输出True C)在窗体上输出被选定的项目的索引值 D)在窗体上输出True 10.在窗体上画一个名称为List1的列表框,一个名称为Label1的标签,列表框中显示若干城市的名称。但单击列表框中的某个城市名时,该城市名从列表框中消失,并在标签中显示出来。下列能正确实现上述操作的程序是______。 A)Private Sub List1_Click()

vb中常用控件及其功能

4.1 标签 标签是VB中最简单的控件,用于显示字符串,通常显示的是文字说明信息。但不能编辑标签控件。 使用标签的情况很多,通常用标签来标注本身不具有Caption属性的控件。例如,可用标签为文本框、列表框、组合框等控件来添加描述性的标签。还可编写代码改变标签控件的显示文本以响应运行时的事件。例如,若应用程序需要用几分钟处理某个操作,则可用标签显示处理情况的信息。 4.1.1 常用属性 标签的属性很多,下面介绍几个常用的属性。 (1)Alignment属性 设置标签中文本的对齐方式。其使用语法如下: Object.Alignment[=值] 其中的“值”可以为0,1或2。0(默认值)表示左对齐;1表示右对齐;2表示居中。 (2)AutoSize属性 设置控件是否能够自动调整大小以显示所有的内容。其使用语法如下: Object.AutoSize[=True或False] (3)BackStyle属性 设置标签的背景样式。其使用语法如下: Object.BackStyle[=值] 其中的“值”可以为0或1。1(默认值)表示是不透明的;0表示是透明的。 (4)BorderStyle属性 设置标签的边框样式。其使用语法如下: Object.BorderStyle[=值] 其中的“值”可以为0或1。0(默认值)表示无边框;1表示单线边框。 (5)Caption属性 设置标签的文本内容。其使用语法如下: Object.Caption[=字符串] (6)WordWrap属性 设置标签的文本在显示时是否自动折行功能。其使用语法如下: Object.WordWrap[=True或False] 其中True表示具有自动折行功能;False(默认值)表示没有自动折行功能。 4.1.2 常用事件和方法 一般很少使用标签事件,标签的方法中常用的只有Move,其基本语法如下: Move left,top,width,height 其中left,top,width,height分别表示移动目的位置的坐标和大小。left为必要参数,其他

Windows常用控件的使用

Windows编程基础 东软人才实训中心 Copyright 2010 By Neusoft Group. All rights reserved 1

2本课程旨在向学员介绍: 1)掌握编辑框和普通按钮的使 用 2)掌握单选按钮和复选框的使 用 3)掌握列表框和组合框等控件 的使用时间:学时9教学方法:讲授+课上练习+课下作业 第五章Windows 常用控件的使用

?关于控件: –对话框和控件是密不可分的。 –控件类从CWnd类派生过来的,所以他们实际上也是窗口,所以我们可以动态的创建他们,应该说掌握了这些控件, 就可以解决大部分界面设计的要求了 –控件担负着与用户交互的责任,比如按下按钮,显示图片等,按键的外观是由其属性决定的,在编辑对话框时,我 们可以对某一个控件属性进行修改。 3

控件类控件类 静态文本CStatic单选按钮CButton 图片控件CStatic组框CButton 编辑框CEdit组合框CComboBox 命令按钮CButton列表框CListBox 复选框CButton滚动条CScrollBar 4

5 控件的创建 ?控件的创建分为静态创建和动态创建两种方式 –静态创建-在对话框模板中创建控件 –动态创建-程序的运行中定义一个控件类对象,再通过Create 函数进行创建

6 控件的访问 ?访问控件一般有3种方法: –利用对话框的数据交换功能访问控件 ?适用于静态创建的控件,通过调用UpdateData()函数,实现对话框和控件的数据交换。 –通过控件对象来访问控件 –利用CWnd 类的成员函数来访问控件

常用控件习题

简单应用 说明:符号" "代表空格。 一、选择题: 2. 要向图片框Picture1中加载“d:\hainan\zhiwu.bmp”图像文件,应使用语句( d ) A.P1.Picture=LoadPicture(d:\hainan\zhiw u.bmp) B.P1.Picture=LoadPicture("d:\hainan\zhi wu.bmp ") C.Picture1.Picture=" d:\hainan\zhiwu.bmp " D.Picture1.Picture=LoadPicture("d:\hain an\zhiwu.bmp ") 3. 当一个复选框被选中时,它的value属性的值是( c ) A.3 B.2 C.1 D.0 4.在窗体上画一个名称为Listl 的列表框,一个名称为Labell 的标签,列表框中显示若干城市的名称。当单击列表框中的某个城市名时,该城市名从列表框中消失,并在标签中显示出来。下列能正确实现上述操作的

程序是(c) A.Privale Sub Listl_Click() B. Private Sub Listl_Click() Labell. Caption=Listl. ListIndex https://www.360docs.net/doc/2b11222592.html,=Listl. ListIndex Listl. Removeltem Listl.Text Listl.RemoveItem Listl.Text End Sub End Sub C.Private Sub Listl_Click() D.Private Sub Listl_Click() Labell. Caption=Listl.Text Labell. Name=Listl. Text Listl. RemovItem Listl. ListIndex Listl. RemoveItem Listl. ListIndex End Sub End Sub 5.能自动按图形大小而改变的控件是( a ) A.图像框B.图片框 C.文本框 D.框架 6. 将菜单弹出的方法有() A.MenuPopup B.MenuPop C.PopupMenu D.PopMenu 7.设在窗体上已经添加了通用对话框CommonDialog 控件并设置好了属性,其名称是CommonDialog1, 在程序中要显示“打开”对话框,使用的语句是() A.CommonDialog1.Action=1 B.CommonDialog1.Action=2 C.CommonDialog1.Action=3

第8章 常用控件答案

一、判断题 1.用来显示文本框内容的属性是Caption属性。 2.滚动条的Scroll事件在滑块位置改变时即被触发。 3.滚动条控件可作为用户输入数据的一种方法。 4.若在列表框中第三项之后插入一项目“ABC”,则所用语句为List1.AddItem"ABC",3。5.一个窗体中只能含一组单选按钮。 6.用Cls方法可以清除组合框中的所有表项。 7.列表框控件,只能设置为单选。 8.对象的属性都可以在属性窗口中设置。 9.命令按钮不但能响应单击事件,而且还能响应双击事件。 10.单选框控件和复选框控件都具有Value属性,它们的作用完全一样。 11.移动框架时,框架内的控件也跟着移动,并且框架内的各控件的Top和Left属性值也将分别随之改变。 12.当文本框的Multiline属性为True时,ScrollBars属性才有效。 13.与控件有关的赋值语句一定要放在该控件的事件中。 14.由于定时器控件在运行时是看不见的,因此在设置时可任意地将其放在任何位置。15.当列表框中表项太多,超出了设计时的长度时,VB会自动给列表框加上垂直滚动条。 16.若文本框的MaxLength属性值为0,则该文本框内不可输入任何字符。 17.若复选框控件的Value属性值为True,则框内显示“√”,若Value属性值为False,则显示空白。 18.当触发滚动条的Scroll事件后,一定会同时触发滚动条的Change事件。 19.如果命令按钮的Defalut属性为True,那么任何时候按Enter键都相当于单击该命令按钮。 20.所有控件都有Name和Caption属性。 二、选择题 1.文本框中选定的内容,由下列属性来反映。 A.SelText B.SelLength C.Text D.SelStart 2.执行后会删除文本框Text1中文本的语句为____。 A.Text1.Caption=””B.Text1.Text=”” C.Text1.Clear D.Text1.Cls 3.将数据“宋体”添加到列表框List1中,并使其成为第一项,使用____语句。 A.List1.AddItem "宋体",0 B.List1.AddItem "宋体" C.List1.AddItem 0,"宋体" D.List1.AddItem "宋体",1 4.复选框对象是否被选中,是由其____属性决定的。 A.Checked B.Enabled C.Value D.Selected

相关文档
最新文档