我在这里学编程关于我们 共44页[1 2 3 4 5 6 7 >»<... 最后一页]

13  北京名胜图片

教学目标:

  • 学会ListBox控件及Image控件使用

  • 进一步学会使用SelectCase语句

编程显示北京名胜图片

    在实际应用中,常常有这样的情况:列出若干个项,供使用者从中任意选择,并对其做出某种处理。例如,有若干名胜(名胜名),使用者从中选择某一名胜,要求立即显示出该名胜的代表图片。显然,用文本框等控件难以实现这一要求。

    VB提供了ListBox(列表框)控件,可以方便地解决这类问题。在列表框中,放人若干个名胜的名字,使用者可以在其中选择。如果放人的项较多,超过了列表框的长度,则系统会自动在列表框边上加一个垂直滚动条,通过滚动条可以使列表框中的内容作上下滚动,以便使用者能够看到所需的内容。

    向列表框中添加一个项:

在一个列表框中可以包括许多项(item)。这些项的内容既可以在设计时直接写入,也可以在程序运行时加入。但从实际情况考虑,往往是通过程序来添加项的内容。我们通过编北京名胜图片的程序来说明如何使用Addltem方法向列表框中添加项。

随堂讲义:

    在建立了列表框后,要向列表框放入各项。用Addltem方法向列表框中插入一个项。例如Listl.Additem"北海”,表示在Listl列表框中加入”北海”作为一项。

    Addltem方法的一般格式如下:

    <对象名>Addltem<项字符串>[,项索引号]

    其中的“项字符串”是用西文引号(“”)定界的将要在列表框中显示的项名称。“项索引号”是从0开始的顺序号,标明新增的项在列表框中的位置。如果不写“项索引号”,则把新增的项添加到列表的末尾。项索引号对应于列表框的Listlndex属性(有关Listlndex属性将在本讲后面介绍),可以通过列表框的Listlndex属性确定所选择的项。

    在运行程序,装入窗体后,列表框中就列出了北海、长城等。如果在窗体设计时所定义的列表框的大小不能全部容纳这些名胜的名字,则在列表框中只显示出其中一部分,而在右侧自动加一个垂直滚动条。如果一个项的字数过多,在列表框中一行放不下,只能在一行中显示出一部分,则在列表框下侧自动加一个水平滚动条。通过移动滚动条来浏览。

    在窗体上画出列表框的方法与其他控件类似,单击工具箱中的ListBox(列表框)控件,然后在窗体中的适当位置处拖拉成所需的大小。

    列表框应用比较广泛,它支持Click (单击)DbClick (双击)事件。它具有多个属性。它支持的“方法”有:AddltemRemovehemC1ear

清除列表框中全部内容语句

<列表框名>Clear

    一、设计“北京名胜图片”程序界面

    程序中用了2个标签、1个图片框和1个列表框。

     清除Image控件中的图片,其语法是:

    Picturel.Picture=LoadPicture

    三、编写程序代码

    在开始运行程序时,就要将名胜的名字放人Listl中,可以用Form_Load事件过程来完成(一般可以用rivate Sub Form_Load()事件过程来完成变量或者对象属性的初始化)。程序如下:

   Private Sub Form_Load()

    List1.AddItem "北海"

    List1.AddItem "长城"

    List1.AddItem "故宫"

    List1.AddItem "十三陵"

    List1.AddItem "天坛"

    List1.AddItem "颐和园"

    List1.AddItem "圆明园"

End Sub

   下面考虑的是:当使用者单击Listl中某一名胜的名字(如北海)时,如何能在Imagel中显示出该名胜图片。列表框支持单击事件,当单击列表框中“北海”选项时,列表框的 Text属性就获得一个值——“北海”,同时ListlListlndex属性(表示被选中的项在列表中的顺序)获得一个值——0(序号从0开始,由于“北海”位于列表的首行,故此时的 Listlndex属性值为0。可以利用Listlndex属性的值,判断被选中的项。相应的List1_Click()事件过程如下:

    Private Sub List1_Click()

    Select Case List1.ListIndex

        Case 0

            Image1.Picture = LoadPicture("d:\教学用图片\北海.jpg")

            Label2.Caption = "北海"

        Case 1

            Image1.Picture = LoadPicture("d:\教学用图片\长城.jpg")

            Label2.Caption = "长城"

        Case 2

            Image1.Picture = LoadPicture("d:\教学用图片\故宫.jpg")

            Label2.Caption = "故宫"

        Case 3

            Image1.Picture = LoadPicture("d:\教学用图片\十三陵.jpg")

            Label2.Caption = "十三陵"

        Case 4

            Image1.Picture = LoadPicture("d:\教学用图片\天坛.jpg")

            Label2.Caption = "天坛"

        Case 5

            Image1.Picture = LoadPicture("d:\教学用图片\颐和园.jpg")

            Label2.Caption = "颐和园"

        Case 6

            Image1.Picture = LoadPicture("d:\教学用图片\圆明园.jpg")

            Label2.Caption = "圆明园"

    End Select

End Sub

    Select Case语句是VB提供的又一种条件语句。

    Selct Case语句的一般格式如下:

    SelectCase变量    广

    Case1

    语句1

    Case1

    语句2

    ……

    Casen

    语句n

    [Case  Else

    语句n+1]

    End Select

    SelectCase语句用来实现多分支选择,SelectCase中的“变量”称为Case变量,它可以是一个表达式,通常使用一个变量或常量,也可以是数值型或是字符串型。在每个Case子句中指定一个值,当Case变量值的符合某个Case子句指定值的条件时,就执行该Case子句中的语句,然后跳到EndSelect,从EndSelect出口。这里的“语句”可以是一个语句,也可以是一组语句。如果变量的值与任何一个Case子句都不匹配,就执行CaseElse子句后面的“语句n+1,然后从EndSelect出口(如果程序中,不涉及到这种情况,[]中的程序段可以不要。

    程序中,单击Listl中的“北海”选项,Listlndex属性获得值0,执行Case 0子句中语句,使用LoadPicture函数将“北海”图片赋值给Imagelpicture属性,即将“北海”图片装入Imagel中。

我在这里学编程关于我们 共44页[1 2 3 4 5 6 7 >»<... 最后一页]