第 5 章 常用标准控件
一、实验目的
1.了解和熟悉直线(Line)控件、形状(Shape)控件和框架(Frame)控件的画法以及
主要属性的用法。
2.掌握水平(HScrollBar)和垂直(VScrollBar)滚动条控件的使用方法。
3.掌握单选按钮(OptionButton)控件、复选框(CheckBox)控件的使用方法。
4.掌握列表框(ListBox)
、组合框(ComboBox)、计时器(Timer)和 ActiveX 控件的使
用方法。
二、实验指导
例 51 如图 51 所示,设计一窗体,运行时用户能通过窗体上单选按钮组和复选框按钮
来改变标签上文本的颜色和字形。
图 51 程序运行示意图设计步骤如下:
①建立一个新的工程,将窗体的 Caption 属性设置为“单选按钮和复选框的使用”
。在窗
体上放置一个文本框控件 Text1,设置文本框 Text1 的 MultiLine 属性为 True。
②在窗体上放置一个框架控件 Frame1,然后在框架控件中放置三个单选按钮控件
Option1~3。其标题分别为“红色”
、
“绿色”和“蓝色”
,调整好框架 Frame1 及框架内各控件
的布局。
③另添加一个框架控件 Frame2,在该框架中添加四个复选框控件 Check1~4,其标题分
别为“粗体”
、
“斜体”
、
“下划线”和“正常”
,调整好框架 Frame2 及框架内各控件的布局。
④添加窗体、单选按钮和复选框控件相关的事件代码如下:
l窗体 Form1 的 Load 事件代码
Private Sub Form_Load() Text1 = " 中华人民共和国一定能建设成为富强、民主、文明的社会主义国家!" End Subl
“红色”单选按钮 Option1 的 Click 事件代码
Private Sub Option1_Click() Text1.ForeColor = RGB(255, 0, 0) End Sub l“绿色”单选按钮 Option2 的 Click 事件代码
Private Sub Option2_Click() Text1.ForeColor = RGB(0, 255, 0) End Sub l“蓝色”单选按钮 Option3 的 Click 事件代码
Private Sub Option3_Click() Text1.ForeColor = RGB(0, 0, 255) End Sub l“粗体”复选框 Check1 的 Click 事件代码
Private Sub Check1_Click() Text1.FontBold = True End Sub l“斜体”复选框 Check2 的 Click 事件代码
Private Sub Check2_Click() Text1.FontItalic = True End Sub l“下划线”复选框 Check3 的 Click 事件代码
Private Sub Check3_Click() Text1.FontUnderline = True End Sub l“正常”复选框 Check4 的 Click 事件代码
Private Sub Check4_Click() Check1.Value = 0: Check2.Value = 0: Check3.Value = 0 Text1.FontBold = False Text1.FontItalic = False Text1.FontUnderline = False End Sub例 52 设计一个如图 52 所示的日期确定程序。
图 52 程序运行示意图设计步骤如下:
①建立一个新的工程,在窗体上放置九个标签控件 Label1~9,两个水平滚动条控件
HScroll1~2,一个垂直滚动条控件 VScroll1,一个命令按钮控件 Command1。
②窗体及主要控件属性设置值如表 51 所示。
表 51 对象 属性 属性值 说明 Form1 Caption 滚动条的使用 其他取默认值 Label1、Label3、Label5 Caption 无 Caption 年份确定、月份确定、天数确定 Label2、Label4、Label6~9 Autosize True HScroll1 Max/Min 2100/1900 HScroll2 Max/Min 12/1 VScroll1 Max/Min 31/1 Command1 Caption 退出③为窗体和控件添加相关事件代码。
l“退出”命令按钮 Command1 的 Click 事件代码
Private Sub Command1_Click() End End Sub l窗体 Form1 的 Load 事件代码
Private Sub Form_Load() Label1.Caption = HScroll1.Value Label3.Caption = HScroll2.Value Label5.Caption = VScroll1.Value End Sub l水平滚动条 HScroll1 的 Change 事件代码
Private Sub HScroll1_Change() Label1.Caption = HScroll1.Value End Sub l水平滚动条 HScroll2 的 Change 事件代码
Private Sub HScroll2_Change() Label3.Caption = HScroll2.Value End Sub l垂直滚动条 VScroll2 的 Change 事件代码
Private Sub VScroll1_Change() Label5.Caption = VScroll1.Value End Sub例 53 设计一个如图 53 所示的应用程序,要求在程序窗体中放置三个命令按钮
Command1~3、一个图像框控件 Image1 和一个图片框控件 Picture1。程序运行时,单击“放
大”或“减小”命令按钮时,放在图像控件中的图像可以放大或减小,同时在图片框中显示相
对应的文字信息;单击“还原”命令按钮时,可还原图像尺寸。
设计步骤如下:
①建立一个新的工程,在窗体上放置三个命令按钮控件 Command1~3、左边一个图像框
控件 Image1、右边一个图片框控件 Picture1,其中,图像 Image1 的 Stretch 属性设置为 True,
其他控件各属性一般根据需要采用自定义即可。
图 53 程序运行效果图②编写相应的事件代码。
l应用程序的“通用”声明
Dim n As Integer '用于记录图片框中的输出项数 Dim h&, w& l窗体 Form1 的 Load 事件代码
Private Sub Form_Load() Image1.Picture = LoadPicture(App.Path & "\小女孩 3.jpg") 'App.Path 用于确定工程所在路径 n = 0 '赋初值 h = Image1.Height w = Image1.Width End Sub l“放大”命令按钮 Command1 的 Click 事件代码
Private Sub Command1_Click() Image1.Width = Image1.Width * 1.15 Image1.Height = Image1.Height * 1.15 Picture1.Print "放大图片" n = n + 1 If n = 10 Then Picture1.Cls: n = 0 End Sub l“减少”命令按钮 Command2 的 Click 事件代码
Private Sub Command2_Click() Image1.Width = Image1.Width * 0.95 Image1.Height = Image1.Height * 0.95 Picture1.Print "减小图片" n = n + 1 If n = 10 Then Picture1.Cls: n = 0 End Sub l“还原”命令按钮 Command3 的 Click 事件代码
Private Sub Command3_Click() Image1.Height = h Image1.Width = w Picture1.Cls End Sub例 54 设计一个如图 54 所示的标题移动窗体。程序运行开始,三个命令按钮的标题分
别为“开始”
、
“暂停”和“停止”
,
“暂停”和“停止”按钮不可用。单击“开始”按钮,标签
Label1 的标题从左向右移动,当标题移动到窗体右侧时,自动地从右向左移动。同时,标题
变为“继续”
。单击“暂停”按钮,停止移动,同时该按钮变为不可用。单击“停止”按钮,
标签 Label1 停止移动,
“继续”变为“开始”
,
“暂停”和“停止”按钮不可用。
图 54 程序运行示意图(左为设计界面,右为运行界面)设计步骤如下:
①建立一个新的工程,在窗体上放置三个命令按钮控件 Command1~3、一个标签控件
Label1 和一个计时器控件 Timer1。
②设置 Label1 的 BackStyle 属性为 0Transparent(透明),Timer1 的 Interval 属性为 50,
即每隔 0.05 秒触发一个 Timer 事件。其他控件各属性一般根据需要采用自定义即可。
③编写相应的事件代码。
l应用程序的“通用”声明
Dim x As Integer ' l“开始/继续”命令按钮 Command1 的 Click 事件代码
Private Sub Command1_Click() x = 1 If x = 1 Then Timer1.Enabled = True x = 0 Command1.Caption = "继续" Command2.Enabled = True Command3.Enabled = True End If End Sub l“暂停”命令按钮 Command2 的 Click 事件代码
Private Sub Command2_Click() If x = 0 Then Timer1.Enabled = False Command2.Enabled = False x = 1 End If End Sub l“停止”命令按钮 Command3 的 Click 事件代码
Private Sub Command3_Click() Timer1.Enabled = False Command1.Caption = "开始"Command2.Enabled = False Command3.Enabled = False End Sub l
窗体 Form1 的 Load 事件代码
Private Sub Form_Load() Form1.Picture = LoadPicture(App.Path & "\Clouds.bmp") '用 App.Path 确定工程所在文件路径 Command1.Caption = "开始" Command2.Caption = "暂停" Command3.Caption = "停止" Command2.Enabled = False Command3.Enabled = False End Sub l计时器 Timer1 的 Timer 事件代码
Private Sub Timer1_Timer() Dim L& L = Label1.Left If Label1.Left = Form1.Width Then Label1.Left = L Else Label1.Left = Label1.Left + 50 End If End Sub④运行窗体并观察效果。
例 55 设计一个学生基本信息的数据输入窗体,单击“提交”按钮后,将输入的内容显
示在 ListBox 控件中,如图 55 所示。
图 55 程序运行效果图分析:为了保证数据输入的规范和减少用户的键盘输入量,使用单选按钮控件选择性别,
使用 ComboBox 控件选择班级,使用 DateTimePicker 控件选择出生日期。
设计步骤如下:
①选择“文件”菜单中的“新建工程”命令,建立一个新工程(
“标准 EXE”
)
。
②选择
“工程”
菜单中的
“部件”
命令,
在出现的
“部件”
对话框中选择
“Microsoft Windows
Common Controls2 6.0(sp6)”部件,将其添加到工具箱中。
③在窗体中添加四个标签控件 Label1~4、一个文本框控件 Text1、两个单选按钮控件
Option1~2、一个组合框控件 ComboBox1、一个列表框控件 List1 和一个日期采集器控件
DTPicker1。
④设置日期采集器控件 DTPicker1 的 Format 属性为 0DtLongDate(即长日期格式),该控
件的其他属性及其他各控件的属性采用默认值即可。
⑤添加有关事件代码。
l应用程序的“通用”声明
Option Explicit Dim 性别 As String l“提交”命令按钮 Command1 的 Click 事件代码
Private Sub Command1_Click() List1.AddItem ("姓名:" & Text1.Text) List1.AddItem ("性别:" & 性别) List1.AddItem ("班级:" & Combo1.Text) List1.AddItem ("出生日期:" & DTPicker1.Value) End Sub l“清除”命令按钮 Command2 的 Click 事件代码
Private Sub Command2_Click() Text1 = "" Combo1.Text = "" DTPicker1.Value = Now() List1.Clear End Sub l“退出”命令按钮 Command3 的 Click 事件代码
Private Sub Command3_Click() End End Sub l“男”单选按钮 Option1 的 Click 事件代码
Private Sub Option1_Click() If Option1.Value = True Then 性别 = "男" End If End Sub l“女”单选按钮 Option2 的 Click 事件代码
Private Sub Option2_Click() If Option2.Value = True Then 性别 = "女" End If End Sub三、实验练习
1.在名称为 Form1 的窗体上画一个名称为 Shape1 的形状控件,画两个名称分别为
Command1、Command2,标题分别为“圆形”
、
“红色边框”的命令按钮控件。将窗体的标题
设置为“图形控件的使用”
,如图 56(a)所示。请编写适当的事件过程,使得在运行时,单
击“圆形”按钮,将形状控件设为圆形;单击“红色边框”按钮, 将形状控件的边框颜色设
为红色(&HFF&),如图 56(b)所示。
要求程序中不得使用变量,每个事件过程中只能写一条语句。
(a)设计界面 (b)运行界面 图 56 练习 1 图2.如图 57(a)所示,窗体上已有部分控件,请按照图中所示添加框架和单选按钮。要
求:画两个框架,名称分别为 Frame1、Frame2,在 Frame1 中添加一个名为 Option1 的单选按
钮数组,含两个单选按钮,标题分别为“古典音乐”
、
“流行音乐”
,在 Frame2 中添加两个单
选按钮,名称分别为 Option2、Option3,标题分别为“篮球”
、
“羽毛球”
。
程序运行时,
“古典音乐”和“篮球”单选按钮为选中状态。单击“选择”按钮,将把选
中的单选按钮的标题显示在标签 Label2 中,如图 57(b)所示。如果“音乐”或“体育”复
选框未被选中,相应的单选按钮不可选。
(a)设计界面 (b)运行界面 图 57 练习 2 图下面给出了窗体及控件的有关事件代码,请去掉程序中的?改为正确的内容,不能修改
程序的其他部分和控件属性。
Private Sub Check1_Click() If Check1.Value = 1 Then Frame1.Enabled = True Else Frame1.Enabled = False End If End Sub Private Sub Check2_Click() If Check2.Value = 1 Then Frame2.Enabled = True Else Frame2.Enabled = False End If End Sub Private Sub Command1_Click()If Check1.Value = 1 Then 'If ? = True Then s = "古典音乐" Else s = "流行音乐" End If End If If Check2.Value = 1 Then 'If ? = True Then s = s & "篮球" Else s = s & "羽毛球" End If End If 'Label2.Caption = ? End Sub Private Sub Form_Load() Check1.Value = 1 Check2.Value = 1 End Sub
3.如图 58 所示,窗体上有两个初始标题分别为“移动”和“退出”的命令按钮控件,
一个初始状态为不可用的时钟控件 Timer1。请画一个标签控件 Label1,其标题为“计算机考
试”
,显示格式为黑体小四号字,左边界为 500,且能根据显示内容自动调整大小。
程序功能如下:
①单击标题为“移动”的按钮时,该按钮标题自动变换为“暂停”
,且标签内容在窗体中
开始向右移动;当移动到窗体右边时,标签移动方向改变为从右向左移动。
②单击标题为“暂停”的按钮时,该按钮标题自动变换为“移动”
,并暂停标签内容的
移动。
③单击“退出”按钮,则结束程序运行。
命令按钮的 Click 事件过程已经给出,但事件过程不完整,请将其中的注释符去掉,把?
改为正确的内容,以实现上述程序功能(不得修改窗体文件中已经存在的控件和程序)
。
图 58 练习 3 图 Dim flag As Integer Private Sub Form_Load() flag = 0 End SubPrivate Sub Command1_Click() If Command1.Caption = "移动" Then Timer1.Enabled = ? Command1.Caption = "暂停" Else Timer1.Enabled = False Command1.Caption = "移动" End If End Sub Private Sub Command2_Click() End End Sub Private Sub Timer1_Timer() Select Case flag Case Is = 0 Label1.Left = Label1.Left ? 100 If Label1.Left + Label1.Width = Form1.Width Then flag = 1 Case Is = 1 Label1.Left = Label1.Left ? 100 If Label1.Left = 0 Then flag = 0 End Select End Sub
4.如图 59 所示,窗体上有两个列表框,名称分别为 List1、List2,List2 中已经预设了
内容;还有两个命令按钮,名称分别为 C1、C2,标题分别为“添加”
、
“清除”
。程序的功能
是:在运行时,如果选中右边列表框中的一个列表项,单击“添加”按钮,则把该项移到左边
的列表框中;若选中左边列表框中的一个列表项,单击“清除”按钮,则把该项移回右边的列
表框中。
图 59 练习 4 图窗体文件中已经给出了所有控件和程序,但程序不完整,请把程序中的?改为正确的内容。
Private Sub C1_Click() Dim k As Integer k = 0 While (k < List2.?) If ?.Selected(k) = True Then List1.AddItem List2.Text List2.RemoveItem ? End If k = k + 1Wend End Sub Private Sub C2_Click() List2.AddItem List1.Text List1.RemoveItem List1.? End Sub
5.如图 510(a)所示,在窗体上有一个命令按钮,其名称为 Command1,标题为“移动”
;
有一个文本框,名称为 Text1,可以多行显示;此外还有一个列表框,其名称为 List1。程序运
行后,会在列表框中显示几行文字,如果单击命令按钮,则把列表框中的文字移到文本框中,
如图 510(b)所示。
(a)设计界面 (b)运行界面 图 510 练习 5 图6.如图 511 所示,在 Text1 文本框中输入一个任意的字符串(要求串的长度≥10)
,然
后选择组合框中的三个截取运算选项之一。单击“计算”按钮,将截取运算后的结果显示在
Text2 文本框中。
图 511 练习 6 图窗体文件中的程序已经在下面给出,但不完整,请把程序中的?改为正确的内容。
Dim is_num As Boolean Private Sub Command1_Click() Dim tmpStr As String * 50 Select Case ? Case 0 tmpStr = Left(Trim(Text1.Text), 5) Case 1 tmpStr = Right(Trim(Text1.Text), 3) Case 2 tmpStr = Mid(Trim(Text1.Text), ?) End Select Text2.Text = ?End Sub Private Sub Form_Load() Text1 = "病毒与黑客技术的高速发展,使得 QQ、EMail、网上银行等各种密码被盗。" Combo1.AddItem "左面取 5 个字符" : Combo1.AddItem "右面取 3 个字符" Combo1.AddItem "中间取 4 个字符" : Combo1 = "请选择" End Sub
7.如图 512 所示,窗体上有一个组合框 Combo1,其中已经预设了内容;还有一个文本
框 Text1 和三个命令按钮,名称分别为 Command1、Command2、Command3,标题分别为“修
改”
、
“确定”
、
“添加”
。程序运行时,
“确定”按钮不可用。
图 512 练习 7 图程序的功能是:在运行时,如果选中组合框中的一个列表框,单击“修改”按钮,则把
该项复制到 Text1 中(可在 Text1 中修改),并使“确定”按钮可用;若单击“确定”按钮,
则用修改后的 Text1 中的内容替换组合框中该列表项的原有内容,
同时使
“确定”
按钮不可用;
若单击“添加”按钮,则把 Text1 中的内容添加到组合框中。
8.如图 513 所示,窗体中有两个滚动条,分别表示红灯亮和绿灯亮的时间(秒)
,移动
滚动框可以调节时间,调节范围为 110 秒。刚运行时,红灯亮。单击“开始”按钮则开始切
换:红灯到 10 秒后自动变为黄灯,1 秒后变为绿灯;绿灯到 10 秒后自动变为黄灯,1 秒后变
为红灯,如此切换。
图 513 练习 8 图所提供的窗体文件已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,
把程序中的?改为正确的内容。
提示:在三个图片框 Picture1、Picture2、Picture3 中分别放置了红灯亮、绿灯亮、黄灯亮
的图标,并重叠在一起,当要使某个灯亮时,就使相应的图片框可见,而其他图片框不可见,
并保持规定的时间,时间到就切换为另一个图片框可见,其他图片框不可见。
Dim red, green Private Sub Command1_Click() ? = HScroll1.Value green = HScroll2.ValueTimer1.Enabled = ? End Sub Private Sub Timer1_Timer() If Picture1.Visible Then red = red 1 If red = 0 Then ?.Visible = False Picture3.Visible = True End If ElseIf Picture3.Visible Then Picture3.Visible = False If red = 0 Then Picture2.Visible = True red = HScroll1.Value Else Picture1.Visible = True green = HScroll2.Value End If ElseIf Picture2.Visible Then green = ? If green = 0 Then Picture2.Visible = False Picture3.Visible = True End If End If End Sub
9.如图 514 所示,在窗体上有一个名称为 Driver1 的驱动器列表框,一个名称为 Dir1 的
目录列表框,一个名称为 File1 的文件列表框,一个名称为 Label1 的标签,目录列表框与文件
列表框同步变化,并且在文本框 Text1 中显示当前文件夹中文件的数量。
图 514 练习 9 图下面是窗体及有关控件的事件代码,程序不完整,请将程序中的?改成正确的程序。
Private Sub Form_Load() '初始化 Text1.Text = File1.ListCount End Sub Private Sub Dir1_Change() '当改变分区时 File1.Path =? Text1.Text = File1.ListCount '统计文件数End Sub Private Sub Dir1_Click() '当单击文件夹时 ? = Dir1.Path '将文件与文件夹关联 Text1.Text = File1.ListCount End Sub Private Sub Driver1_Change() '当文件夹变化时 Dir1.Path = Driver1.Drive '将文件夹与分区关联 Text1.Text = File1.ListCount End Sub
10.如图 515(a)所示,窗体中的横线(横坐标)的名称为 Line1,竖线(纵坐标)的
名称为 Line2;五个不同颜色的矩形是一个形状控件数组,名称为 Shape1,它们的 Visible 属
性都为 False;从左到右两个按钮的名称分别为 Command1、Command2;另有一个有五个元素
的标签数组,名称为 Label1,其所有元素的 Visible 属性都为 False。程序运行时,单击“输入
五个数据”按钮,可输入五个整数(最好在 100~2000 之间),并作为刻度值显示在纵坐标的
左面;单击“直方图”按钮,则按五个数分别的输入顺序显示直方图。例如:若输入的五个数
分别是 1200、500、850、1950、1500,则结果如图 515(b)所示。
(a)设计界面 (b)运行界面 图 515 练习 10 图下面给出了“输入五个数据”和“直方图”两个命令按钮的 Click 事件代码,但程序不完
整,请把程序中的?改为正确的内容。
Dim s(5) As Integer Private Sub Command1_Click() For k = ? To 5 s(k) = Val(InputBox("input")) Label1(k 1).Caption = s(k)Label1(k 1).Move Line2.X1 Label1(k 1).Width, Line1.Y1 s(k) Label1(k 1).Visible = ? Next k End Sub Private Sub Command2_Click() Dim a As Integer For k = 1 To 5 Shape1(k 1).Height = s( ? ) ? = Line1.Y1
Shape1(k 1).Top = a Shape1(k 1).Height Shape1(k 1).Visible = True
Next k End Sub
11.如图 516 所示,该程序将在上面的文本框中输入的英文字母串(称为“明文”
)加密,
加密结果(称为“密文”
)显示在下面的文本框中。加密的方法为:选中一个单选按钮,单击
“加密”按钮后,根据选中的单选按钮后面的数字 n,将“明文”中的每个字母改为它后面的
第 n 个字母(
“z”后面的字母认为是“a”
,
“Z”后面的字母认为是“A”
)
。
图 516 练习 11 图下面给出了窗体所有控件和程序,但程序不完整,请把程序中的?改为正确的内容(注
意:不得修改程序中的其他部分和控件的属性)
。
Private Sub Command1_Click() Dim n As Integer, k As Integer, m As Integer Dim c As String, a As String For k = 0 To 2 If Op1(k).Value Then n = Val(Op1(k). ? ) End If Next k m = Len(Text1.Text) a = "" For k = 1 To ? c = Mid$(Text1.Text, ? , 1) c = String(1, Asc(c) + n) If c > "z" Or c > "Z" And c < "a" Then c = String(1, Asc(c) 26) End If ? = a + c Next k Text2.Text = a End Sub Private Sub Form_Load() Text1 = "Actions speak louder than words." End Sub12.如图 517 所示。窗体上有两个图像框控件 Image1~2,一个计时器控件 Timer1,两
个标签控件 Label1~2 和两个文本框控件 Text1~2。运行时,单击“发射”按钮,航天飞机图
标将向上运动,速度逐渐加快,全部进入云中后则停止,并把飞行距离(用坐标值表示)
、所
用时间(单位为秒)分别显示在文本框 Text1 和 Text2 中。
图 517 练习 12 图下面给出了窗体所有控件和程序,但程序不完整,请把程序中的?改为正确的内容(注
意:不得修改程序中的其他部分和控件的属性)
。
Dim a, t, d 'a,t,d 分别表示加速度、用时和距离 Private Sub Command1_Click() Timer1.? = True d = Image1.Top End Sub Private Sub Command2_Click() End End Sub Private Sub Form_Load() Image1.Picture = _ LoadPicture("C:\Program Files\Microsoft Office\MEDIA\CAGCAT10\j0215086.wmf") Image2.Picture = _ LoadPicture("C:\Program Files\Microsoft Office\MEDIA\CAGCAT10\j0293828.wmf") a = 1 t = 0 End Sub Private Sub Timer1_Timer() Image1.Top = Image1.Top a * 2 If Image1.Top + Image1.Height <= Image2.Top + Image2.Height 300 Then ?= False d = ? Image1.Top Text1 = d Text2 = t * Timer1.Interval / 1000 End If a = a + 0.1 t = ? End Sub13.如图 518 所示,窗体上有一个图片框控件 Picture1,一个标签控件 Label1,一个文本
框控件 Text1 和一个命令按钮控件 Command1。在文本框 Text1 中,输入要打印的行数,单击
“打印”按钮,可在图片框 Picture1 中打印相应行由“*”号组成的三角形。
图 518 练习 13 图下面给出了窗体所有控件和程序,但程序不完整,请把程序中的?改为正确的内容(注
意:不得修改程序中的其他部分和控件的属性)
。
Private Sub Command1_Click() Dim n%, i%, k% ? Picture1.Cls For i = 1 To n Picture1.Print Space(n i); For k = 1 To ? Picture1.Print "* "; Next ? Next End Sub14.
有如图 519 所示的窗体和控件,
程序运行时,
在 Text1 中输入一个商品名称,
在 Text2
中输入一个数量,单击“计算”按钮,则会在列表框中找到该商品的单价,乘以数量后显示在
Text3 中。若输入的商品名称是错误的,则在 Text3 中显示“无此商品”
。
图 519 练习 14 图下面给出了“计算”命令按钮的 Click 事件代码,请把程序中的?改为正确的内容。
Private Sub Command1_Click() Dim flag As Boolean, name As String flag = False '表示列表框中是否有指定的商品名称 'For k = ? To List1.ListCount 1 n% = InStr(List1.List(k), " ") '" "中是一个空格 name = Left(List1.List(k), ?)If RTrim(Text1) = name Then List1.Selected(k) = ? price = Val(Right( ? )) flag = True Exit For End If Next k If flag = True Then Text3 = Val(Text2) * price Else Text3 = ? End If End Sub