实验 VB 滚动条

合集下载

二是利用VB的picturebox和滚动条控件编程实现

二是利用VB的picturebox和滚动条控件编程实现

二是利用VB的picturebox和滚动条控件编程实现PICTUREBOX控件能支持许多种图像格式,但没有缩放功能并且不自动添加滚动条,所以必须自行编程实现。

应用程序使用两个图片框,一个作为包容器,可称之为父图片框,另一个作为子图片框显示图形,配合滚动条控件在父图片框内移动子图片框就可实现画面的滚动。

VB中提供了paintpicture方法,可以在窗体、图片框上的任何地方绘制图形,语法为object.PaintPicture picture, x1, y1, width1, height1, x2,y2, width2, height2, opcode,其中x1,y1为指定在object 上绘制picture的目标坐标;width1,height1 指定picture 的目标宽度和高度;x2,y2指定picture 内剪贴区的坐标width2,height2 指定picture 内剪贴区的源宽度和高度,当我们重新设定width1,height1时,就可以在子图片框内实现平滑的缩放图片。

虽然Paintpicture可以代替bitblt windows API函数,但没有API的执行速度快,如程序对速度的要求比较高,可用API函数代替paintpicture方法。

在窗体中先画出picture1作为父图片框,然后在其中中画出picture2,在窗体中再画出滚动条,picture2的autosize属性为TRUE,borderstyle属性为0,autoredraw属性为true,滚动条的largechange和smallchange属性设为合适大小,窗体既设置完毕。

以下为可以直接使用的完整程序,可以用光标键移动画面,也可以拖放方式移动画面;用加减号缩放画面。

Public c1, c2, c3, c4 As IntegerPublic tf, d1, d2, d3, d4, blf As IntegerPublic yk, yg As LongPrivate Sub Form_Load()c1 = Form1.Widthc2 = Form1.Heightblf = 100Picture2.Picture = LoadPicture("a:\ddd.jpg")yk = Picture2.Widthyg = Picture2.HeightEnd SubPrivate Sub Form_Resize()If Width > 1500 And Height > 1170 Thenc3 = Form1.Width - c1c4 = Form1.Height - c2Picture1.Move Picture1.Left, Picture1.Top, Picture1.Width + c3, Picture1.Height + c4 c1 = Form1.Widthc2 = Form1.HeightCall pEnd IfPicture2.SetFocusEnd Sub'以拖放方式滚动画面Private Sub Picture2_DragDrop(Source As Control, x As Single, y As Single)If Picture2.Height > Picture1.Height Then '通过计算鼠标移动位置,调用vscroll_change事件cccc = VScroll1.V alue + (d2 - y) '移动画面If cccc <= 0 Thencccc = 0End IfIf cccc >= VScroll1.Max Thencccc = VScroll1.MaxEnd IfVScroll1.V alue = ccccEnd IfIf Picture2.Width > Picture1.Width Thencccc1 = HScroll1.V alue + (d1 - x)If cccc1 <= 0 Thencccc1 = 0End IfIf cccc1 >= HScroll1.Max Thencccc1 = HScroll1.MaxEnd IfHScroll1.V alue = cccc1End IfEnd Sub'设置功能键,光标键移动画面,加减号缩放画面Private Sub Picture2_KeyDown(KeyCode As Integer, Shift As Integer)Select Case KeyCodeCase vbKeyLeftHScroll1.V alue = IIf(HScroll1.V alue - HScroll1.SmallChange < 0, 0, HScroll1.V alue - HScroll1.SmallChange)Case vbKeyRightIf Picture2.Width > Picture1.Width ThenHScroll1.V alue = IIf(HScroll1.V alue + HScroll1.SmallChange > HScroll1.Max, HScroll1.Max, HScroll1.V alue + HScroll1.SmallChange)End IfCase vbKeyUpVScroll1.V alue = IIf(VScroll1.V alue - VScroll1.SmallChange < 0, 0, VScroll1.V alue -VScroll1.SmallChange)Case vbKeyDownIf Picture2.Height > Picture1.Height ThenVScroll1.V alue = IIf(VScroll1.V alue + VScroll1.SmallChange > VScroll1.Max, VScroll1.Max, VScroll1.V alue + VScroll1.SmallChange)End IfCase vbKeyAddIf blf < 150 Thenblf = blf + 25Call fs(blf)End IfCase vbKeySubtractIf blf > 50 Thenblf = blf - 25Call fs(blf)End IfEnd SelectEnd SubPrivate Sub Picture2_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) d1 = xd2 = yPicture2.Drag 1Set Picture2.DragIcon = LoadPicture("a:\plane.ico")End SubSub p()'画面和滚动条重设置程序Picture2.Move 0, 0HScroll1.Top = Picture1.Height + Picture1.TopHScroll1.Left = Picture1.LeftHScroll1.Width = Picture1.WidthVScroll1.Top = Picture1.TopVScroll1.Left = Picture1.Width + Picture1.LeftVScroll1.Height = Picture1.HeightHScroll1.Max = (Picture2.Width - Picture1.Width)VScroll1.Max = (Picture2.Height - Picture1.Height)VScroll1.Visible = (Picture1.Height < Picture2.Height)HScroll1.Visible = (Picture1.Width < Picture2.Width)End SubPrivate Sub VScroll1_Change()Picture2.Top = -VScroll1.V aluePicture2.SetFocusEnd SubPrivate Sub HSCROLL1_Change()Picture2.Left = -HScroll1.V aluePicture2.SetFocusEnd SubSub fs(bl1 As V ariant) '画出缩放Dim bl As V ariantbl = bl1 / 100Form1.MousePointer = vbHourglassPicture2.Width = yk * blPicture2.Height = yg * blPicture2.RefreshPicture2.PaintPicture Picture2.Picture, 0, 0, yk * bl, yg * bl, 0, 0, yk, ygCall pIf VScroll1.Visible ThenVScroll1.V alue = IIf(VScroll1.V alue * bl > VScroll1.Max, VScroll1.Max, VScroll1.V alue * bl) End IfIf HScroll1.Visible ThenHScroll1.V alue = IIf(HScroll1.V alue * bl > HScroll1.Max, HScroll1.Max, HScroll1.V alue * bl) End IfForm1.MousePointer = vbDefaultEnd Sub一、数据库的设计数据库可以采用微软的Access97或者SQL Server来进行,首先新建一张表,取名为Table,添加三个字段,分别是:姓名Char型(SQL Server中)文本型(Access中);编号Char型(SQL Server中)文本型(Access中);照片image型(SQL Server中)OLE对象(Access 中),设计好后存盘。

VB实验4

VB实验4

实验4:基本用户界面设计实验目的:1.掌握单选按钮,复选按钮,计时器的主要属性和事件的用法2.掌握框架的相关属性。

3.列表框,组合框和滚动条的相关属性、事件和方法。

实验原理:1.VB基本控件的属性、事件和方法实验步骤:(实验程序效果见附件)1. 字体控制对话框:设计一个字体控制对话框,如图所示。

要求:在单选按钮和复选按钮选中后,文本框中文字的字体效果随之改变。

用户界面及运行界面如图:2.闪烁文字:编写程序,利用计时器实现文字闪烁功能,即使标签中文字随机变成qbcolor 函数所提供的15种颜色,实现闪烁效果。

(提示:关于vb中颜色的使用见文档最后,qbcolor的参数0~15可由随机数产生)3. 电子滚动屏幕(难度一):单击“开始”按钮,“热烈欢迎”从窗体右侧向左侧移动,按钮名称改为“继续”,当单击“暂停”按钮时,字幕暂停移动,“继续”按钮被激活。

(提示:使用计时器,计时事件中移动标签,标签的水平移动即修改其left值,请参见第一次实验题目。

点击开始和继续按钮时,时计时器的Enable属性为true,点击暂停时,设为false即可。

)3.电子滚动屏幕(难度二):在上题的基础上,当标签移动到从左边框消失时,再从屏幕右侧重新向左移动。

效果见实验效果程序。

4.字体和字号:从组合框选择字体,通过滚动条滚动事件来调节文本框中字体的大小(8到72号字),并在窗体上的标签显示出字体的大小,窗体的界面如图所示。

5.篮球比赛组队:窗体装载时,利用列表框分别显示参赛队员名单和候补名单。

单击对应的方向键可以调整组队名单。

若组队名单已满5人,再添加时弹出提示框,用户界面和运行界面如图:(提示:使用list的additem方法和removeitem方法,同时注意msgbox语句的使用格式)附录:vb中颜色的表示1.RGB函数:RGB即Red,Green,Blue的简写,该函数通过三原色的值混合产生一种颜色。

函数格式:RGB(红色值,绿色值,蓝色值)说明:红,绿,蓝的值均为0~255的整数。

vb滚动条

vb滚动条

滚动条(ScrollBar)滚动条常常用来附在某个窗口上帮助观察数据或确定位置,也可以用来作为数据输入的工具。

在日常操作中,我们常常遇到这样的情况:在某些程序中,如Photoshop ,一些具体的数值我们并不清楚,如调色板上的自定义色彩,这时,可以通过滚动条,用尝试的办法找到自己需要的具体数值。

在Visual Basic 中,滚动条分为横向(HscrollBar)与竖向(VscrollBar)两种,命名规则为:HsbX 或VsbX ,如HsbShow、VsbShow ,等等。

它们在工具箱上的图标如图所示:图一选中滚动条按钮,把鼠标指针放到界面设计区,然后拖动,画出符合自己要求的滚动条,或者直接双击该按钮,自动在界面设计区生成默认大小的滚动条,如图二所示:图二一、滚动条控件的属性:1、Max(最大值)与Min(最小值)属性:滚动块处于最右边(横向滚动条)或最下边(竖向滚动条)时返回的值就是最大值;滚动块处于最左边或最上边,返回的值最小,如图三所示:图三Max 与Min 属性是创建滚动条控件必须指定的属性,默认状态下,Max 值为32767 ,Min 值为0 。

本属性既可以在界面设计过程中予以指定,也可以在程序运行中予以改变,如:HsbShow.Min = 3HsbShow.Max = 302、Value(数值)属性:Value 属性返回或设置滚动滑块在当前滚动条中的位置,如图三所示。

改变滚动条value属性的方法有五种:直接在属性窗口中设定value值;鼠标单击两端箭头键改变滚动条数值;可将滚动框沿滚动条拖动到任意位置;用鼠标单击滚动条中滚动块两侧的部分,使滚动块以翻页的速度移动。

可以在程序运行中改变,如:HsbShow.Value = 243、SmallChange(小改变)属性:当用户单击滚动条左右边上的箭头时,滚动条控件Value 值的改变量就是SmallChange,如图四:图四4、LargeChange(大改变)属性:单击滚动条中滚动框前面或后面的部位时,引发Value 值按LargeChange 设定的数值进行改变,如图五:图五二、滚动条控件的事件:与滚动条控件相关的事件主要是Scroll 与Change时会触发Scroll 事件(但要注意,单击滚动箭头或滚动条时不发生Scroll 事件),滚动框发生位置改变后则会触发Change 事件。

VB列表框、组合框和滚动条

VB列表框、组合框和滚动条

[教案](七)列表框、组合框和滚动条授课方式:讲授法授课学时: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、作用:显示项目列表,用户可从中选择一个或多个项目。

Excel VBA编程 滚动条

Excel VBA编程  滚动条

Excel VBA编程滚动条滚动条是放置在窗体的独立控件。

它看上去与列表框或组合框的下拉部分中的滚动条类似。

然而,与它们不同的是,滚动条控件是独立的,并不是任何其他控件的组成部分。

在VBA工具箱中提供一种滚动条。

要创建水平或垂直滚动条,将已放置在窗体中的滚动条进行水平或垂直拖动就可以创建水平或垂直的滚动条。

多数情况下,滚动条控件与文本框、列表框等一起使用,通过它可以查看列表选项或数据,还可以进行数值输入。

借助最大值和最小值的设置,并配合滚动条中滚动块的位置,就能读取用户指定的数据。

1.滚动条常用属性滚动条控件常用的属性如下:●Value属性在滚动条控件中,滚动块所处的位置可以用数值代表。

Value属性值即为表示滚动块在滚动条中位置的数值。

对于水平滚动条,当滚动块处于最左边时,Value取最小值;而当滚动块处于最顶端时,Value取最小值。

反之,则Value的值为最大值。

在中间的各个位置,Value值与位置是按比例来设定的。

●Max属性用于确定滚动条在滚动块位于最底端(垂直滚动条)或最右边(水平滚动条)时可表现的最大值。

该属性可以指定-32768到32767之间的一个整数。

缺省值为32767。

●Min属性用于确定滚动条在滚动块位于最顶端(垂直滚动条)或最左边(水平滚动条)时可表现的最小值。

该属性可以指定-32768到32767之间的一个整数。

缺省值为0。

●LargeChange属性设定单击滚动条中间的滚动块时,每次增减的数值。

●SmallChange属性设定单击滚动条中的箭头时,每次增减的数值。

2.滚动条常用事件滚动条控件常用的事件主要包含两种,其功能如下:●Change事件当单击滚动条的箭头或两箭头之间的区域引起Value属性值变化时而发生的事件。

它与Scroll事件一样都是最常用来实现指定功能的事件。

●Scroll事件移动滚动块时发生,而单击滚动条中的箭头或滚动条时不发生。

例如,使用滚动条来调节数值大小,如图所示。

VB中编辑代码窗口的滚动条怎么不能通过鼠标滑轮控制解决办法

VB中编辑代码窗口的滚动条怎么不能通过鼠标滑轮控制解决办法

VB中编辑代码窗口的滚动条怎么不能通过鼠标滑轮控制解决办法
1.下载VB 6.0 鼠标Wheel.exe 文件(/download/e/f/b/efb39198-7c59-4ace-a5c4-8f0f88e00d34/vb6m ousewheel.exe)。

解压后有一个VBA Mouse Wheel Fix文件,双击。

有一个VB6IDEMouseWheelAddin.dll 文件,复制到系统文件夹C:\Windows\System32下。

2.单击开始,在搜索栏键入regsvr32 VB6IDEMouseWheelAddin.dll
3.启动Visual Basic 6.0。

在窗口单击加载项管理器(或外接程序管理器),然后单击加载项管理器(或外接程序管理器)。

5.在加载项管理器(或外接程序管理器)列表, 单击MouseWheel fix 。

6.在available add-ins(可用外接设备)列表中,选择“mousewheel fix”,在load behavior (加载行为)栏中单击选中loaded/unloaded(加载/卸载)和load on startup(在启动中加载)复选框
7.单击确定。

VB实验案例(数组)

VB实验案例(数组)

实验五数组一、控件属性的设置 (滚动条)1、在名称为Forml的窗体上添加一个名称为H1水平滚动条,请在属性窗口中设置它的属性值,满足下列要求:它的最小刻度值为1,最大刻度值为100,在程序运行时鼠标单击滚动条上滚动框以外的区域(不包括两边按钮),滚动框移动10个刻度。

再在滚动条下面画两个名称分别为L1、L2的标签,并分别显示1、100,运行时的窗体如图5-1所示。

工程文件名保存为sy5-1.vbp,窗体文件名为sy5-1.frm。

2、在名称为Form1的窗体上添加一个名称为HS1的水平滚动条,其刻度值范围为1 -100;添加一个命令按钮,名称为C1,标题为"移动滚动框"。

请编写适当的事件过程,使得在程序运行时,每单击命令按钮一次(假定单击次数不多于10次),滚动框向右移动10个刻度。

程序运行时的窗体如图5-2所示。

要求程序中不得使用变量,事件过程中只能写一条语句。

工程文件名保存为sy5-2.vbp,窗体文件名保存为sy5-2.frm。

3、在名称为Form1的窗体上画一个图片框,其名称为Picture1、一个水平滚动条,名称为HScroll1,和一个命令按钮,名称为Command1,标题为"设置属性",通过属性窗口在图片框中装入一个图形(文件名为pic1.jpg,位于考生目录下),图片框的高度与图形的高度相同,图片框的宽度任意(如图1所示)。

编写适当的事件过程,程序运行后,如果单击命令按钮,则设置水平滚动条的如下属性:Min 100Max 1500LargeChange 100SmallChange 10之后就可以通过移动滚动条上的滚动块来放大或缩小图片框。

程序运行后的窗体如图5-3所示。

要求程序中不得使用任何变量。

工程文件名为sy5-3.vbp,窗体文件名为sy5-3.frm。

4、在控件属性1文件夹下有一个工程文件sy5-4.vbp,窗体上有一个圆和一个矩形,还有水平和垂直滚动条各一个。

VB实验3

VB实验3

需要提交的文件 GUI\G3_04.vbp GUI\G3_04.frm GUI\G3_04.exe GUI\G3_04.jpg(结果图) (结果图)
图一
图二
图三
需要提交的文件:GUI\ 需要提交的文件:GUI\G3_01.vbp GUI\G3_01F1.frm(对应第一个Form文件 对应第一个Form文件) GUI\G3_01F1.frm(对应第一个Form文件) GUI\G3_01F2.frm (对应第二个Form文件) GUI\ (对应第二个Form文件) 对应第二个Form文件 GUI\ GUI\G3_01.exe GUI\G3_01A.jpg(图一) GUI\G3_01A.jpg(图一) GUI\G3_01B.jpg(图二) GUI\G3_01B.jpg(图二) GUI\G3_01C.jpg(图三) GUI\G3_01C.jpg(图三)
G3_03: 制作趣味调色板 设计一个趣味调色板。通过改变红、 设计一个趣味调色板。通过改变红、绿、蓝三种基本颜色 的比例,显示调色结果。 具体步骤: 的比例,显示调色结果。 具体步骤:
1、在界面上放置3个滚动条控件(HScrollBar水平滚动条), 在界面上放置3个滚动条控件(HScrollBar水平滚动条), 水平滚动条 个标签(label)控件, 个形状(shape)控件, 4个标签(label)控件,1个形状(shape)控件,其中形状控 件是用来显示调出的颜色结果的, 件是用来显示调出的颜色结果的,标签控件则分别用来静态显 调色板”信息, 示“红”、“绿”、“蓝”和“调色板”信息,三个滚动条则 用来在程序执行时调整三原色的配比比例。 用来在程序执行时调整三原色的配比比例。 2、形状控件shape的初始设置:Shape属性设置值为“oval” 形状控件shape的初始设置:Shape属性设置值为“ shape的初始设置 属性设置值为 或者“circle”;Backstyle属性设置值为 属性设置值为“ 或者“circle”;Backstyle属性设置值为“opaque” 。 3、程序中使用RGB函数。该函数的完整格式: 程序中使用RGB函数。该函数的完整格式: RGB函数 RGB(red,green,blue) RGB(red,green,blue) 其中的red green、blue分别代表红 red、 分别代表红、 蓝的三个整型数据, 其中的red、green、blue分别代表红、绿、蓝的三个整型数据, 其值在0 255之间 如果超过255 则当作255处理)。 之间( 255, 255处理 其值在0~255之间(如果超过255,则当作255处理)。 合理搭配这三个整型数据,就可以得到全部色彩。 合理搭配这三个整型数据,就可以得到全部色彩。

VB中Listbox控件添加水平垂直滚动条问题解决

VB中Listbox控件添加水平垂直滚动条问题解决

VB中Listbox控件添加水平垂直滚动条问题解决(1)VB中Listbox控件若条目足够多,则自动会显示垂直滚动条(2)若仅仅需要水平滚动条,且每向右滚动一下移动一个条目,则将控件的columns 属性设为1(3)如果需要两种滚动条,则仅仅考虑水平滚动条即可,这时需要引入API函数,先判断是否超出条目范围,如果超出,则调用API生成水平滚动条,具体代码如下:代码:vb 为listbox添加水平滚动条Private Declare Function SendMessage Lib "user32 " Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Const LB_SETHORIZONTALEXTENT = &H194Private Sub setListWidth()'如果列表框不够宽,则增加水平滚动条Dim i As IntegerDim List_MaxL As Integer'获得选项内容的最大长度For i = 0 To demo_lbox.ListCount - 1'&apos;让list_maxl中保存最长的一条字串If Len(demo_lbox.List(i)) > List_MaxL ThenList_MaxL = Len(demo_lbox.List(i)) + 2End IfNext i'判断是否内容显示不完全,如果是则添加水平滚动条If Me.TextWidth("AA ") * List_MaxL > demo_lbox.Width ThenSendMessage demo_lbox.hwnd, LB_SETHORIZONTALEXTENT, Me.TextWidth("a") * List_MaxL, ByVal 0&End IfEnd SubPrivate Sub Form_Load()Dim i As Integer'为ListBox控件添加选项For i = 0 To 100demo_lbox.AddItem ("这是,最据jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj:(第" + CStr(i)) & "行)"'demo_lbox.AddItem ( "(第" + CStr(i)) & "行)"Next i' 设置窗体坐标尺度模式和字体大小Me.ScaleMode = vbPixelsMe.FontSize = demo_lbox.FontSize'设置列表框的水平滚动条Call setListWidthEnd Sub。

VB控件大全属性详解 水平滚动条

VB控件大全属性详解   水平滚动条
VisualBasic自学教材(常用控件的属性)——1.10、水平滚动条(HScrollBar)和垂直滚动条(VScrollBar)控件的常用属性
作者:杜 勇
属性
说明
(Name)
控件对象的名称
CauseValidation
该控件获得焦点时,失去焦点的控件的Validate事件是否发生。取值为:
True 发生
获得或设置与对象相关联的上下文号
Width
设置该对象的宽度
False 不发生
DragIcon
该对象在拖动过程中鼠标的图标
DragMode
该对象的拖动模式,取值为:
0 Manual(手动)
1 Automatic(自动)
Enabled
用于设定是或对事件产生响应,取值为:
True 可用
False 不可用,在执行程序时,该对象用灰色显示,并且不响应任何事件
Height
MousePointer=99时,设定一个自定义的鼠标图标
MousePointer
RightToLeft
文本书写是否自左向右。取值为:
True
False 自右向左
SmallChange
用于设置单击滚动条两端箭头时,每单击一次滚动条移动的数量。
TabIndex
获得或设置此对象在父窗体的编号(父窗体中对象响应Tab键的顺序)
TabStop
设置是否可以用"Tab"键选取此对象。取值为:
True 可以
False 不可以
Tag
存储程序所需的附加数据
Top
距窗体顶部边界的距离
Value
该属性值对应于滚动框在滚动条中的相应位置,是一个整数。

工程编程软件VB课件教程-列表框组合框和滚动条

工程编程软件VB课件教程-列表框组合框和滚动条

单列和多列列表框示例
访问列表框中的项目—— List属性 可用ListBox控件的List属性来访问列表框中的全部项目。 列表框中的项目可以在程序界面设计时设置,也可以在程序运 行时添加或移除。List属性实际上是一个字符串数组,列表中 的一个项目对应数组中的一个元素。因此,使用List属性可以 访问列表框中的所有项目。注意的是:List数组第一个元素的 索引号为0。 Text1.Text=List1.List(1) ‘此语句作用:在文本框Text1中 显示列表框List1的第二个项目 List1.List(1) = Text1.Text ‘此语句作用:将文本框Text1 中的内容赋给列表框List1的第 二个项目
若列表框的MultiSelect属性为1—Simple或2—Extended时, 允许用户选中多个项目,列表框的ListIndex属性和Text属性 记录的只是用户最后一次选择的项目。为了能够知道列表框中 哪些项目被选中,需要使用到列表框的Selected属性。
Selected属性表示列表框中各个项目是否被选中。 Selected属性也是一个数组,它通过索引号与列表框中的项 目相联系。该属性也必须在代码设计时使用。
ListCount属性经常与List属性一起使用,表示列表框中项目 的个数。注意,ListCount属性只能在代码设计阶段使用, 不出现在属性窗口中。当需要对列表框的全部项目进行遍历 时,使用ListCount属性是最为方便的。 For i = 0 To List1.ListCount - 1 Debug.Print List1.List(i) Next
在列表框中,第一个项目的索引号为0,第二个项目的索引 号为1,依此类推。Index参数是可选的,若省略,则项目被添 加到列表框的末尾。 注意:若列表框Sorted属性的值为True,则无论Index参 数的值为多少,项目都以正确的排序添加到列表框中。 从列表框中删除项目 列表框的RemoveItem方法用来向列表框中删除项目。用法为: 列表框名.RemoveItem Index 用于删除指定的项目

VB教案第11章滚动条和计时器

VB教案第11章滚动条和计时器

班级:日期:年月日编号:一、滚动条滚动条通常作为数据输入的工具,或者作为速度、数量的指示器。

滚动条分为水平滚动条和垂直滚动条,如图4-15所示就是滚动条。

图4-15 滚动条滚动条的主要属性有:Value:滚动条的值,也就是滚动条的当前位置,它的取值范围在Min和Max 之间;Min:滚动条可以取的最小值;Max:滚动条可以取的最大值;LargeChange单击滚动条区域时的变化SmallChange单击箭头时的变化滚动条的事件:Change:改变滚动条的Value值,触发该事件;Scroll:拖动滚动条的滑块触发该事件。

Scroll 事件用来跟踪滚动条中的动态变化,Change 事件则用来得到滚动条最后的值。

例题,见编程实例中程序举例:例题1.下面的程序使用滚动条来改变窗体的颜色RGB(0,255,0)V.设计界面在窗体中添加标签Lable1、Lable2和Lable3,添加Hscroll1、Hscroll2和Hscrll3。

界面如图4-16所示。

图4-16 程序界面II.设置属性设置属性,设置各个控件的属性(省略),设置属性后的界面如图4-17所示。

图4-17设置属性后的界面III.编写代码,如下:Private Sub HScroll1_Change()Form1.BackColor = RGB(Hscroll1.Value, Hscroll2.Value, Hscroll3.Value)End SubPrivate Sub Hscroll2_Change()Form1.BackColor = RGB(Hscroll1.Value, Hscroll2.Value, Hscroll3.Value)End SubPrivate Sub Hscroll3_Change()Form1.BackColor = RGB(Hscroll1.Value, Hscroll2.Value, Hscroll3.Value)End SubIV.保存程序保存程序。

VB实验报告教案(4-7)

VB实验报告教案(4-7)

VB实验报告教案(4-7)第一篇:VB实验报告教案(4-7)实验四:题目:Visual Basic常用控件目的:1、掌握命令按钮、单选钮、检查框、框架常用属性与事件2、掌握滚动条、列表框、组合框、时钟的常用属性与事件日期:1班为10月18日,2班为10月14日,3班为10月16日内容:要求界面用铅笔画出来。

Private Sub Command1_Click()List1.AddItem Text1If Option1 ThenList1.AddItem “男”ElseList1.AddItem “女”End IfList1.AddItem Text2List1.AddItem Combo1List1.AddItem Combo2List1.AddItem “爱好:”If Check1 ThenList1.AddItem “上网”End IfIf Check2 ThenList1.AddItem “篮球”End IfIf Check3 ThenList1.AddItem “音乐”End IfIf Check4 ThenList1.AddItem “交友”End If End Sub Private Sub Command2_Click() List1.Clear End SubPrivate Sub Command3_Click()End End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 ThenText2.SetFocusEnd If End SubPrivate Sub Form_Load()Form1.Caption = “电子钟”Form1.BorderStyle = 3Timer1.Enabled = TrueTimer2.Enabled = FalseTimer1.Interval = 1000Timer2.Interval = 1000Label1.Caption = Time()'显示系统时间Label1.Alignment = 2Label1.BorderStyle = 1Label2.Caption = “闹钟时间:”Text1.Text = “" End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer) '按下回车开始闹钟If KeyAscii = 13 ThenTimer2.Enabled = TrueText1.Enabled = FalseEnd If End SubPrivate Sub Timer1_Timer()Label1.Caption = Time()'显示系统时间 End SubPrivate Sub Timer2_Timer()Static i As Int gerIf Label1.Caption >= Text1.Text Then'利用静态变量产生背景交替效果If i = 0 ThenLabel1.BackColor = vbRedi = 1ElseLabel1.BackColor = vbWhitei = 0End IfEnd If End Sub 实验五:题目:对话框、菜单、工具栏和图形程序设计目的:1、掌握菜单的设计方法;学会应用通用对话框控件2、掌握在Visual Basic环境中的绘图方法,显示图片3、对话框、菜单、工具栏和图形程序设计的综合应用日期:1班为11月3日,2班为11月4日,2班为11月6日内容:要求界面用铅笔画出来。

VB实验教材习题答案 (1)

VB实验教材习题答案 (1)

第1章VB集成环境与VB概述一、选择题第2章常用控件与界面设计一、选择题第3章数据、表达式与简单程序设计一、选择题第4章选择分支与循环一、选择题二、填空题1.5 7 13 12 14 112. 3 1 5 3 4 13. right(a$,i)4. 45. 6-i6. 6 11 10 21 13 347. 5 14 138. Is else end select9. a*(2*i-1)*(-1)*x/(2*i+2) i+110. 0 n-111. 1 t*(-1)*x^2/((2*k-1)*(2*k)) Abs(t)>eps12. count1=count+1 count1>013. sum=0 sum+j st & k & “+”14. 9 x三、编程题1.Option ExplicitPrivate Sub Command1_Click()Dim s As String, i As Integer, ch As String * 1Dim a As Integer, b As Integer, c As Integers = Text1.TextFor i = 1 To Len(s)ch = Mid(s, i, 1)If (ch >= "0" And ch <= "9") Thena = a + 1ElseIf (ch >= "A" And ch <= "Z") Or (ch >= "a" And ch <= "z") Thenb = b + 1Elsec = c + 1End IfNextPrint "数字个数"; aPrint "字符个数"; bPrint "其他字符"; cEnd Sub2.Option ExplicitPrivate Sub Command1_Click()Dim i As Integer, n As IntegerDim a As Integer, b As Integer, c As IntegerFor i = 1 To 50n = Int(Rnd * 90 + 10)Print n;If i Mod 10 = 0 Then PrintIf n <= 40 Thena = a + 1ElseIf n <= 70 Thenb = b + 1Elsec = c + 1End IfNext iPrint "小于等于40的个数:"; aPrint "大于40小于等于70的个数:"; bPrint "大于70的个数:"; cEnd Sub3.Option ExplicitPrivate Sub Command1_Click()Dim x As SingleDim t As Long, n As Integerx = 1t = 1n = 1Do While 1 / t >= 0.0001x = x + 1 / tn = n + 1t = t * nLoopPrint xEnd Sub4.Option ExplicitPrivate Sub Command1_Click()Dim k As Integer, sum As Integer, i As Integerk = InputBox("请输入一个正整数k", "输入框")For i = 1 To Len(CStr(k))sum = sum + Mid(k, i, 1)Next iMsgBox k & "的各位数字之和" & sumEnd Sub5.Option ExplicitPrivate Sub Command1_Click()Dim i As Integer, iSum As LongFor i = 1 To 20iSum = iSum + i ^ 4NextPrint iSumEnd Sub6.Option ExplicitPrivate Sub Command1_Click()Dim a As Integer, b As IntegerDim sum1 As Integer, sum2 As LongDim i As Integer, j As IntegerFor a = 2 To 3000sum1 = 0sum2 = 0For i = 1 To a \ 2If a Mod i = 0 Then sum1 = sum1 + i Next ib = sum1For j = 1 To b \ 2If b Mod j = 0 Then sum2 = sum2 + j Next jIf sum2 = a And a < b Then Print a, bNextEnd Sub7.Private Sub Command1_Click() '打印菱形Dim i As Integer, j As IntegerClsFor i = 1 To 6 '打印菱形上边6行Print Tab(20);Print Spc(6 - i);For j = 1 To 2 * (i - 1) + 1If j = 1 Or j = 2 * (i - 1) + 1 ThenPrint "*";ElsePrint " ";End IfNext jPrintNext iFor i = 5 To 1 Step -1 '打印下半部分Print Tab(20);Print Spc(6 - i);For j = 1 To 2 * (i - 1) + 1If j = 1 Or j = 2 * (i - 1) + 1 ThenPrint "*";ElsePrint " ";End IfNext jPrintNext iEnd Sub8.Option ExplicitPrivate Sub Command1_Click()Dim i As Integer, j As Integer, iSum As IntegerPrint "连续和为1250的正整数是:"For i = 1 To 500iSum = 0For j = i To 500iSum = iSum + jIf iSum >= 1250 Then Exit ForNextIf iSum = 1250 ThenPrint i; " ~"; jEnd IfNextEnd Sub9.Option ExplicitPrivate Sub Command1_Click()Dim a As Integer, b As Integer, c As IntegerFor a = 1 To 50For b = a To 50For c = b To 50If a ^ 2 + b ^ 2 = c ^ 2 ThenPrint a, b, cEnd IfNext cNext bNext aEnd Sub第5章数组一、选择题二、填空题1.Variant2.ReDim A(N)A(1)If M < A(I) Then M = A(I)3.Int(26 * Rnd) + 65Chr(t)i + 1 To 10A(i) > A(j)4.InStr(s, ",")Right(s, Len(s) - n)s5.T – 1I + 16.k = 6 - i – jmax = m7.j = 48j = j-38.i + 1i = i + 19. 23710. 3103511.numi + 1a(j)=temp三、编程题1.Option ExplicitOption Base 1Private Sub Command1_Click()Dim a(10) As IntegerDim i As Integer, max As IntegerFor i = 1 To 10a(i) = Int(90 * Rnd) + 10Print a(i);Next iPrinti = 1max = 0Do While i <= 10If a(i) Mod 3 = 0 ThenIf a(i) > max Thenmax = a(i)End IfEnd Ifi = i + 1LoopIf max = 0 ThenPrint "无要找的数"ElsePrint max & "是最大的能被3整除的数"End IfEnd Sub2.Option ExplicitOption Base 1Private Sub Command1_Click()Dim A() As IntegerDim I As Integer, m As IntegerDim K As IntegerReDim A(10)Print "原数组:";For I = 1 To 10A(I) = IPrint A(I);Next IPrintm = InputBox("????m")K = 9 + mReDim Preserve A(K)For I = 11 To KA(I) = A(I - 10)Next IFor I = 1 To 10A(I) = A(I + m - 1)Next IPrint "平移后的数组:";For I = 1 To 10Print A(I);Next IPrintEnd Sub3.Option ExplicitOption Base 1Private Sub Command1_Click()Dim I As Integer, J As Integer, K As IntegerDim a() As Integer, n As Integer, p As Integer Dim s As String, Flag As Booleanp = 1For K = 10 To 100I = 1Do While I <= 10 And Not FlagJ = 1Do While J <= 10 And Not Flagn = I ^ 2 + J ^ 2If n = K ThenFlag = TrueReDim Preserve a(p)a(p) = Kp = p + 1s = I & Str(J) & Str(K)List1.AddItem sEnd IfJ = J + 1LoopI = I + 1LoopFlag = FalseNext KEnd Sub4.Option ExplicitPrivate Sub Command1_Click()Dim A(10) As IntegerDim B(10) As Integer, S As StringDim I As Integer, J As Integer, X As IntegerA(1) = Int(90 * Rnd) + 10S = A(1)For I = 2 To 10DoX = Int(90 * Rnd) + 10For J = 1 To I - 1If X = A(J) Then Exit ForNext JIf J = I ThenA(I) = XS = S & " " & A(I)Exit DoEnd IfLoopNext IText1.Text = SB(1) = Int(90 * Rnd) + 10S = B(1)For I = 2 To 10DoX = Int(90 * Rnd) + 10For J = 1 To I - 1If X = B(J) Then Exit ForNext JIf J = I ThenB(I) = XS = S & " " & B(I)Exit DoEnd IfLoopNext IText2.Text = SS = ""For I = 1 To 10For J = 1 To 10If A(I) = B(J) ThenS = S & " " & A(I)End IfNext JNext IIf S = "" ThenText3.Text = "没有重复"ElseText3.Text = SEnd IfEnd SubPrivate Sub Command2_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Text1.SetFocusEnd Sub5.Option ExplicitPrivate Sub Command1_Click()Dim I As Integer, J As IntegerDim a() As Integer, K As Integer, Sum As Integer K = Val(Text1.Text)I = 1DoJ = K Mod 10ReDim Preserve a(I)a(I) = JSum = Sum + JK = K \ 10I = I + 1Loop Until K = 0Text2.Text = SumEnd Sub6.Option ExplicitPrivate Sub Command1_Click()Dim a(100, 2) As Integer, K As IntegerDim I As Integer, J As IntegerDim M As Integer, N As IntegerK = 1For I = 1 To 99For J = 1 To 99If I > J ThenM = I - JN = I + JIf Sqr(M) = Int(Sqr(M)) And Sqr(N) = Int(Sqr(N)) ThenList1.AddItem I & " " & Ja(K, 1) = Ia(K, 2) = JK = K + 1End IfEnd IfNext JNext IEnd Sub7.Option ExplicitOption Base 1Dim a(5, 5) As IntegerPrivate Sub Command1_Click() '生成数组并显示Dim i As Integer, j As IntegerPicture1.ClsPicture2.ClsPicture3.ClsRandomizeFor i = 1 To 5For j = 1 To 5a(i, j) = Int(90 * Rnd) + 10Picture1.Print a(i, j);NextPicture1.PrintNextEnd SubPrivate Sub Command2_Click()Dim i As Integer, j As Integer, max As IntegerDim b(5) As Integer, c(5) As IntegerFor i = 1 To 5max = a(i, 1)For j = 1 To 5If max < a(i, j) Thenmax = a(i, j)End Ifb(i) = maxIf max = a(i, j) Then c(i) = jNext jNext iFor i = 1 To 5Picture2.Print b(i)Picture3.Print c(i)NextEnd Sub8.Option ExplicitOption Base 1Dim a(5, 5) As IntegerPrivate Sub Command1_Click() '生成数组并显示Dim i As Integer, j As IntegerPicture1.ClsPicture2.ClsLabel3.Caption = "最大值?"Label4.Caption = "最小值?"RandomizeFor i = 1 To 5For j = 1 To 5a(i, j) = Int(90 * Rnd) + 10Picture1.Print a(i, j);NextPicture1.PrintNextEnd SubPrivate Sub Command2_Click() '交换并显示Dim i As Integer, j As Integer, t As IntegerDim maxi As Integer, mini As Integer, max As Integer, min As Integer max = 10: min = 99For i = 1 To 5For j = 1 To 5If max < a(i, j) Thenmax = a(i, j)maxi = iEnd IfIf min > a(i, j) Thenmin = a(i, j)mini = iEnd IfNextNextIf maxi <> mini ThenFor j = 1 To 5t = a(maxi, j)a(maxi, j) = a(mini, j)a(mini, j) = tNext jFor i = 1 To 5For j = 1 To 5Picture2.Print a(i, j);NextPicture2.PrintNextLabel3.Caption = "最大值" & max & "在第" & maxi & "行"Label4.Caption = "最小值" & min & "在第" & mini & "行"ElsePicture2.Print "最小值和最大值在一行"Label3.Caption = "最大值" & max & "在第" & maxi & "行"Label4.Caption = "最小值" & min & "在第" & mini & "行"End IfEnd SubPrivate Sub Form_click()Picture1.ClsPicture2.ClsLabel3.Caption = ""Label4.Caption = ""End Sub9.Option Base 1Private Sub Command1_Click()Dim i As Integer, j As Integer, n As Integer, a() As Integern = InputBox("请输入一个奇数N:")If n Mod 2 = 0 ThenMsgBox ("请重新输入奇数!")End IfReDim a(n, n)For i = 1 To nFor j = 1 To nIf i = (n + 1) / 2 And j = (n + 1) / 2 Thena(i, j) = -1ElseIf i = j Or i + j = n + 1 Thena(i, j) = 1Elsea(i, j) = 0End IfNext jFor i = 1 To nFor j = 1 To nPrint a(i, j);Next jPrintNext iEnd Sub10.Option Base 1Dim a(10) As IntegerPrivate Sub Command1_Click()Dim i As IntegerPrint "生成的数组:"RandomizeFor i = 1 To 10a(i) = Int(Rnd * 90) + 10Print a(i);NextPrintEnd SubPrivate Sub Command2_Click()Dim i As Integerx = InputBox("请输入要删除的数组元素下标:") Print "删除第" & x & "个数组元素后:"For i = x + 1 To 10a(i - 1) = a(i)NextFor i = 1 To 9Print a(i);NextEnd Sub11.Option ExplicitDim a(20) As Integer, i As IntegerPrivate Sub Command1_Click()RandomizeFor i = 1 To 20a(i) = Int(Rnd * 9) + 1Text1 = Text1 & a(i) & " "If i = 10 Then Text1 = Text1 & vbCrLf NextPrivate Sub Command2_Click()Dim j As Integer, k As Integer, b(20) As Boolean 'b(2)用来记录a(2)是否和前面的数相同,相同记为true,不再统计For i = 1 To 20k = 1If b(i) = False Then '如果b(i)=False,表示a(i)没有被统计过For j = i + 1 To 20If a(i) = a(j) Thenk = k + 1b(j) = TrueEnd IfNext jList1.AddItem a(i) & "出现次数:" & kEnd IfNextEnd SubPrivate Sub Command3_Click()Text1 = ""List1.ClearEnd Sub第6章过程一、选择题二、填空题1. 6 .2. 4 20 1013.第一行是 6 26 、第三行是-2 984.第一行10 6 、第二行 5 -55.第一行 6 5 、第三行8 76.第一行11 、第二行77.Fun(i)Fun=p8.第一行 4 、第二行2079.第一行29 、第二行28.710.J=kb( ) As Integerb( k-1) =b(k)i11.第一行gec 、第二行ge 、第四行 312.p1 = True And p2 = True 或p1 And p2= isp(i)Isp = Truem Mod i = 013.Convert(st)Len(s)"A" To "F"k = k + p * h14.isualVisualVisu15.s + an + 1x As Single, n As Integer 、p * (x + i) / ((2 * i - 1) * i * x)16.27617.Left(s, 1)Mid(s, i - 1, 1) = Mid(s, i, 1)n = 1c & CStr(n)18.chtempTrue19.val(mid(s,i,j))n as longprime=True20.A(2,2)的值是 6 ,A(3,1) 的值是8 ;A(4,2) 的值是 321.Option1(i)X22.1023.第一行7 6 ,第二行16 16 ,第三行,4524.第一行15 1 ,第二行35 3 ,第三行,50三、改错题1、Option Base 1Private Sub Command1_Click()Dim A() As Integer, I As Integer, J As Integer, Logic As Boolean Dim K As IntegerReDim A(1)A(1) = 50————————'K=1For I = 51 To 149K = 1 '位置错Logic = FalseCall Sub1(A, I, Logic)If Logic ThenK = K + 1ReDim A(K) 'ReDim Preserve A(K)A(K) = IEnd IfNext IFor I = 1 To UBound(A)Text1 = Text1 & Str$(A(I))If I Mod 5 = 0 Then Text1 = Text1 & vbCrLfNext IEnd SubPrivate Sub Sub1(A() As Integer, N As Integer, F As Boolean) Dim I As Integer, J As Integer, Ub As IntegerUb = UBound(A)For I = 1 To UbFor J = 2 To A(I)If A(I) Mod J = 0 And N Mod J = 0 ThenExit For 'Exit SubEnd IfNext JF = TrueNext IEnd Sub2、Option ExplicitOption Base 1Private Sub Command1_Click()Dim I As Integer, Flg As Boolean, S1 As Integer, S2 As IntegerDim J As Integer, K As Integer, P() As IntegerReDim P(1)P(1) = 2For I = 3 To 150 Step 2For J = 2 To Sqr(I)If I Mod J = 0 Then Exit ForNext JIf J > Sqr(I) ThenReDim Preserve P(UBound(P) + 1)P(UBound(P) + 1) = I 'P(UBound(P)) = IEnd IfNext IFor I = 80 To 125If fun(I, P, S1, S2) Then 'If fun(I, P, S1, S2)Text1 = Text1 & Str$(I) & "=" & Str(S1) & "*" & Str$(S2) & vbCrLf End IfNext IEnd SubPrivate Function fun(N As Integer, P() As Integer, S1 As Integer, S2 As Integer) As Boolean Dim I As Integer, J As IntegerFor I = 1 To UBound(P)For J = 1 To UBound(P) - 1If N = P(I) * P(J) ThenS1 = P(I)S2 = P(J)'fun = TrueExit Functionfun = True '位置错End IfNext JNext IEnd Function3、Option ExplicitPrivate Sub Get_Chess(Chess() As Integer, idx As Integer, Over As Integer) 'ByVal idx As IntegerDim Ub As Integer, Counter As Integer, K As IntegerUb = UBound(Chess)Chess(idx) = 0Counter = 1K = 0 '位置错Do Until Counter = Ub - 1Do Until K = 2idx = idx + 1If idx > Ub Then idx = 1K = K + Chess(idx)LoopChess(idx) = 0Counter = Counter + 1LoopFor Over = 1 To UbIf Chess(Over) <> 0 Then Exit ForNext OverEnd SubPrivate Sub Command1_Click()Dim Chess(32) As Integer, I As Integer, J As IntegerDim K As Integer, idx As IntegerFor I = 1 To 32For J = 1 To 32Chess(J) = 1Next JCall Get_Chess(Chess, I, K)If K = 23 ThenText1 = "从第" & Str$(I) & "号棋子开始取"Exit ForEnd IfNext IEnd Sub4、Option ExplicitPrivate Sub Form_Click()Dim S As String, Flg As BooleanDoS = InputBox("输入一个自然数")If S = "" Or Not IsNumeric(S) ThenMsgBox "请重新输入", 48 + vbOKOnlyElseExit DoEnd IfLoopjudge(S, Flg) ' Call judge(S, Flg) 或judge S, Flg If Flg ThenPrint S; "是回文数"ElsePrint S; "不是回文数"End IfEnd SubPrivate Sub judge(Ch As String, F As Boolean)Dim L As Integer, I As IntegerL = Len(Ch)F = True ' F = FalseFor I = 1 To LIf Mid$(Ch, I, 1) <> Mid$(Ch, L + 1 - I, 1) Then Exit Sub Next IF = False ' F = TrueEnd Sub四、编程题1.Private Function Prime(a As Integer) As BooleanDim i As IntegerFor i = 2 To Sqr(a)If a Mod i = 0 Then Exit FunctionNext iPrime = TrueEnd Function'方法一Private Sub Command1_Click()Dim m As Integer, i As Integerm = InputBox("请输入一个大于2 的偶数")If m <= 2 Or m Mod 2 <> 0 Then MsgBox "请输入大于2的偶数": Exit Sub If Prime(2) And Prime(m - 2) ThenPrint m & "=2 +" & m - 2ElseDoi = i + 1If Prime(2 * i + 1) And Prime(m - (2 * i + 1)) ThenPrint m & "=" & 2 * i + 1 & "+" & m - (2 * i + 1)Exit DoEnd IfLoop While 2 * i + 1 < m - (2 * i + 1)End If'方法二Private Sub Command2_Click()Dim m As Integer, i As Integer, p() As Integer, n As IntegerDim flg As Booleanm = InputBox("请输入大于2的偶数")If m <= 2 Or m Mod 2 <> 0 Then MsgBox "请输入大于2的偶数": Exit Sub ReDim p(1)p(1) = 2n = 1For i = 3 To m - 2 Step 2If Prime(i) Thenn = n + 1ReDim Preserve p(n)p(n) = iEnd IfNext iFor i = 1 To nFor j = 1 To nIf p(i) + p(j) = m ThenPrint m & "=" & p(i) & "+" & p(j)flg = TrueExit ForEnd IfNext jIf flg = True Then Exit ForNext iEnd Sub2.Private Function Fact(a As Integer) As LongIf a = 0 Or a = 1 ThenFact = 1ElseFact = a * Fact(a - 1)End IfEnd FunctionPrivate Sub Command1_Click()Dim n As Integer, m As Integer, result As Singlen = Val(Text1.Text)m = Val(Text2.Text)If n >= m Thenresult = Fact(n) / Fact(m) / Fact(n - m)Text3.Text = resultMsgBox "要求n>=m,请重新输入"Text1.Text = ""Text2.Text = ""Text1.SetFocusEnd IfEnd SubPrivate Sub Command2_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Text1.SetFocusEnd Sub3.Private Function Istgs(n As Integer) As BooleanDim s As String, L As IntegerL = Len(CStr(n))s = CStr(n ^ 2)If Right(s, L) = n Then Istgs = TrueEnd FunctionPrivate Sub Command1_Click()Dim n As IntegerFor n = 10 To 300If Istgs(n) Then List1.AddItem n & "^2" & "=" & n ^ 2 Next nEnd SubPrivate Sub Command2_Click()EndEnd Sub4.Private Sub Command1_Click()Dim a(3, 4) As Integer, i As Integer, j As IntegerDim m As Integer, mj As IntegerRandomizeFor i = 1 To 3For j = 1 To 4a(i, j) = Int(900 * Rnd + 100)Print a(i, j);Next jPrintNext iFor i = 1 To 3m = 0Call max(a, i, m, mj)Print "第" & i & "行最大值为" & m & ",在第" & mj & "列"Next iEnd SubPrivate Sub max(a() As Integer, i As Integer, m As Integer, maxj As Integer) Dim j As Integerm = a(i, 1): maxj = 1For j = 2 To UBound(a, 2)If a(i, j) > m Thenm = a(i, j)maxj = jEnd IfNext jEnd SubPrivate Sub Command2_Click()EndEnd Sub5.Private Function Judge(n As Integer) As BooleanDim sum As Integersum = yz(n)If yz(sum) = 2 * n Then Judge = TrueEnd FunctionPrivate Function yz(n As Integer) As IntegerDim i As IntegerFor i = 1 To nIf n Mod i = 0 Then yz = yz + iNext iEnd FunctionPrivate Sub Command1_Click()Dim n As IntegerFor n = 1 To 500If Judge(n) Then Print nNext nEnd SubPrivate Sub Command2_Click()EndEnd Sub6.Private Sub Command1_Click()Dim n As Integer, j As Integer, flg As BooleanFor n = 2 To 30flg = FalseFor j = 2 To nIf pfs(j) And n Mod j = 0 Thenflg = TrueExit ForEnd IfNext jIf flg = False Then Print n;Next nEnd SubPrivate Function pfs(n As Integer) As BooleanIf Sqr(n) = Int(Sqr(n)) Then pfs = TrueEnd Function7.Private Function fxs(n As Long) As LongDim i As Integer, s As StringFor i = 1 To Len(CStr(n))s = Mid(CStr(n), i, 1) & sNext ifxs = sEnd Function'判断某数是否为回文数Private Function Hws(n As Long) As BooleanDim i As Integer, s As String, L As Integers = CStr(n): L = Len(s)For i = 1 To Len(s) / 2If Mid(s, i, 1) <> Mid(s, L + 1 - i, 1) Then Exit Function Next iHws = TrueEnd FunctionPrivate Sub Command1_Click()Dim x As Long, t As Longx = InputBox("请输入一个正整数:")t = xDo While Hws(t) = FalsePrint t; "+"; fxs(t); "="; t + fxs(t)t = t + fxs(t)LoopEnd Sub8.Private Function fxs(n As Long) As LongDim i As Integer, s As StringFor i = 1 To Len(CStr(n))s = Mid(CStr(n), i, 1) & sNext ifxs = sEnd FunctionPrivate Sub Command1_Click()Dim n As Long, t As LongFor n = 1 To 999t = fxs(n)If t ^ 2 = fxs(n ^ 2) And n Mod 10 <> 0 And n < t ThenList1.AddItem n & " " & tList2.AddItem n & "^2" & "=" & n ^ 2 & " " & t & "^2" & "=" & t ^ 2 End IfNext nEnd Sub9.Private Function fxs(n As Long) As LongDim i As Integer, s As StringFor i = 1 To Len(CStr(n))s = Mid(CStr(n), i, 1) & sNext ifxs = sEnd FunctionPrivate Function Judge(n As Integer) As BooleanDim i As Integer, L As Integer, a(9) As Integer, t As IntegerIf Sqr(n) = Int(Sqr(n)) ThenL = Len(CStr(n))For i = 1 To Lt = Mid(CStr(n), i, 1)a(t) = 1Next iFor i = 0 To 9Sum = Sum + a(i)Next iIf Sum = L - 1 Then Judge = TrueEnd IfEnd FunctionPrivate Sub Command1_Click()Dim a As IntegerFor a = 300 To 2000If Judge(a) Then List1.AddItem aNext aEnd Sub10.Private Function F(n As Integer) As BooleanDim i As IntegerFor i = 1 To Len(CStr(n))If i Mod 2 = 1 And Mid(CStr(n), i, 1) Mod 2 <> 1 Then Exit FunctionIf i Mod 2 = 0 And Mid(CStr(n), i, 1) Mod 2 <> 0 Then Exit Function Next iF = TrueEnd FunctionPrivate Sub Command1_Click()Dim a(8) As Integer, i As Integer, j As IntegerRandomizeDot = Int(900 * Rnd + 100)For j = 1 To iIf t = a(j) Then Exit ForNext jIf j = i + 1 Theni = i + 1a(i) = tList1.AddItem a(i)If F(a(i)) Then List2.AddItem a(i)End IfLoop Until i = 8End SubPrivate Sub Command2_Click()List1.ClearList2.ClearEnd SubPrivate Sub CmdEnd_Click()EndEnd Sub11.Private Function prime(a As Integer) As BooleanDim i As IntegerFor i = 2 To Sqr(a)If a Mod i = 0 Then Exit FunctionNext iprime = TrueEnd FunctionPrivate Function nx(n As Integer) As IntegerDim i As Integer, s As StringFor i = 1 To Len(CStr(n))s = Mid(CStr(n), i, 1) & sNext inx = Val(s)End FunctionPrivate Sub Command1_Click()Dim n As Integer, t As IntegerFor n = 100 To 900t = nx(n)If prime(n) And prime(t) And n < t ThenList1.AddItem "(" & n & "," & t & ")"End IfNext nEnd SubPrivate Sub Command2_Click()List1.ClearEnd Sub12.Option Base 1Dim a(4, 5) As IntegerPrivate Sub Command1_Click()Dim i As Integer, j As IntegerRandomizeFor i = 1 To 4For j = 1 To 5a(i, j) = Int(Rnd * 90 + 10)Picture1.Print a(i, j);Next jPicture1.PrintNext iEnd SubPrivate Sub Fp(a() As Integer, i As Integer, maxj As Integer, Flg As Boolean) Dim max As Integer, j As Integer, t As Integermax = a(i, 1): maxj = 1For j = 2 To UBound(a, 2)If a(i, j) > max Thenmax = a(i, j)maxj = jEnd IfNext jFor t = 1 To UBound(a, 1)If a(t, maxj) > max ThenFlg = FalseExit SubEnd IfNextFlg = TrueEnd SubPrivate Sub Command2_Click()Dim i As Integer, m As Integer, mj As Integer, f As BooleanFor i = 1 To 4f = Falsem = 0: mj = 0Call Fp(a, i, mj, f)If f = True ThenText1.Text = Text1.Text & "(" & i & "," & mj & "):" & a(i, mj) & vbCrLf End IfNext iEnd SubPrivate Sub Command3_Click()Picture1.ClsText1 = ""End Sub13.Private Sub Command1_Click()Dim a(30) As Integer, i As Integer, j As IntegerDim Flag As BooleanRandomizeDot = Int(900 * Rnd + 100)For j = 1 To iIf t = a(j) Then Exit ForNext jIf j = i + 1 Theni = i + 1a(i) = tText1.Text = Text1.Text + Str(a(i))If i Mod 10 = 0 Then Text1.Text = Text1.Text + vbCrLfIf IsDown(a(i)) ThenList1.AddItem a(i)Flag = TrueEnd IfEnd IfLoop Until i = 30If Flag = False Then List1.AddItem "无降序数"End SubPrivate Function IsDown(n As Integer) As BooleanDim i As Integer, S As StringS = CStr(n)For i = 1 To Len(S) - 1If Mid(S, i, 1) < Mid(S, i + 1, 1) Then Exit FunctionNext iIsDown = TrueEnd FunctionPrivate Sub Command2_Click()List1.ClearText1 = ""End Sub14.Option ExplicitPrivate Sub CmdFind_Click()Dim i As Integer, p As String, st As String, st1 As StringFor i = 100 To 999st = ""If csum(i) = zyz(i, st) Thenp = CStr(i)st1 = Left(p, 1) & "+" & Mid(p, 2, 1) & "+" & Right(p, 1)List1.AddItem i & ": " & st1 & "=" & Left(st, Len(st) - 1)End IfNext iIf List1.ListCount = 0 ThenList1.AddItem "无满足要求的数!"End IfEnd SubPrivate Function csum(m As Integer) As Integer '求各位数字之和Dim i As Integer, p As Stringp = CStr(m)For i = 1 To Len(p)csum = csum + Val(Mid(p, i, 1))Next iEnd FunctionPrivate Function zyz(ByVal m As Integer, st As String) As Integer '求所有质因子之和Dim i As Integeri = 2DoIf m Mod i = 0 Thenzyz = zyz + ist = st & i & "+"m = m \ iElsei = i + 1End IfLoop Until m = 1End Function15.Private Sub Command1_Click()Dim k As Integer, i As Integerk = InputBox("请输入要求的数列项数:")List1.AddItem "共输出前" & k & "项数列"For i = 0 To kList1.AddItem p(i)NextEnd SubPrivate Function p(n As Integer) As IntegerIf n = 0 Or n = 1 Or n = 2 Thenp = 1Elsep = p(n - 2) + p(n - 3)End IfEnd Function第7章文件一、选择题二、填空题1.顺序文件和随机文件2. EOF3. Write和Print4.返回或设置当前的工作目录5.5116.文件的写语句7.Append8.LOF9.关闭10.Pattern11.【1】For Input 【2】#2 【3】Not EOF(2) 12.【1】”END”【2】Text1.Text 或者Text113.【1】Input 【2】ch 【3】Len(mystr) 14.【1】Number 【2】s15.【1】For Append As #1 【2】"end" 【3】ct,nt 16.【1】For Input 【2】For Output As #2 【3】Not EOF(1) 【4】Line Input #1,str1 【5】Close #1,#2 【6】Kill “C:\old.txt 17.【1】Open "C:StuData.txt" For OutPut As #1 【2】Write 18.【1】"C:\data.txt" 【2】#1, a(i) 【3】k>1 And a(k-1)>b 【4】k = k -1三、综合题1.Option Base 1Dim arr(100) As IntegerPrivate Sub Command1_Click()Dim i As IntegerOpen "c:\in18.txt" For Input As #6For i = 1 To 100Input #6, arr(i)Next iClose #6End SubPrivate Sub Command2_Click()Dim i As IntegerText1.Text = ""Open "c:\out18.txt" For Output As #8For i = 1 To 100If arr(i) Mod 2 <> 0 ThenText1.Text = Text1.Text & Str(arr(i))Write #8, arr(i)End IfNext iClose #8End Sub2.Dim str As StringDim n As LongPrivate Sub Command1_Click()CommonDialog1.Filter = "文本文件(*.txt)|*.txt|All Files(*.*)|*.*"CommonDialog1.FilterIndex = 1CommonDialog1.Action = 1Open CommonDialog1.FileName For Input As #2n = LOF(2)str = Input(n, #2)Text1.Text = strClose #2End SubPrivate Sub Command2_Click()Dim i As IntegerFor i = 1 To Len(str)If Asc(Mid(str, i, 1)) <= Asc("Z") And Asc(Mid(str, i, 1)) >= Asc("A") Then Mid(str, i, 1) = LCase(Mid(str, i, 1))ElseIf Asc(Mid(str, i, 1)) <= Asc("z") And Asc(Mid(str, i, 1)) >= Asc("a") Then Mid(str, i, 1) = UCase(Mid(str, i, 1))End IfNext iText1.Text = strEnd SubPrivate Sub Command3_Click()Open "D:\out.txt" For Output As #3Print #3, strClose #3End Sub第8章程序调试一.选择题二.改错题1.a(i)=int(Rnd*19)+1 →a(i)=int(rnd*20)+1For l=1 to a(i)+1 →for i=2 to a(i)+1If l=a(i) →if l <> a(i)K=k+1 →k=k-1。

VB实验报告(含答案)

VB实验报告(含答案)

实验报告课程名称_程序设计基础Visual Basic_ 班级______ ______姓名_____ ____实验一 VB环境和创建一个简单的VB程序一.实验目的:1.了解VB系统对计算机软件、硬件的要求。

2.掌握启动和退出VB的方法。

3.了解和使用VB集成开发环境各窗口、菜单的一般功能。

4.熟悉建立、编辑、运行、保存一个简单的VB应用程序的全过程。

5.了解文本框、标签框、命令按钮的构造及其属性、事件和方法。

二.实验内容:1.设计一个简单的应用程序,要求在窗体上画一个文本框、一个标签和两个命令按钮编一程序,并把命令按钮分别设置为”显示”和”清除”。

程序运行后,单击”显示”按钮,在文本框中输出一行信息;单击”清除”按钮,则清除文本框中的内容,运行界面如图1.1所示。

图1.1 实验1-1 运行界面三.实验结果:对象属性设置对象属性属性值说明caption 我的第一个vb程序窗体Form1caption 请输入姓名标签Label1text ““文本框Text1caption 显示命令按钮Command1caption 清除命令按钮Command2四.实验思考:1.标签label控件设置的属性代码有哪些?Label1.Caption=“请输入姓名”Label1.fontsize=24Label1.fontbold=True2.两个按钮所使用的是什么事件?代码分别是什么?Private Sub Command1_Click()Text1.text=“姓名”实验二简单程序设计数据类型及常用内部函数的简单应用一.实验目的:1.掌握Visual Basic数据类型的基本概念。

2.掌握用Visual Basic的各种运算符及表达式。

3.学习使用Visual Basic内部函数和数据输入、输出方法。

4.掌握命令按钮、文本框和标签。

5.设计顺序程序。

二.实验内容:1.编写一个华氏温度和摄氏温度之间的转换程序,如图2-2所示,要求用inputbox函数输入华氏温度,用msgbox输出转换后的摄氏温度。

VB程序设计(第2版)教学课件7-9 滚动条

VB程序设计(第2版)教学课件7-9 滚动条
当用户在滚动条内拖动滑块时,触发该事件。
拖动滑块时 触发Scroll事 件
3
滚动条控件应用
【应用】利用滚动条控件设计如图所示逐渐显示图片界面。
设计界面
3
代码设计
滚动条控件应用
【应用】利用滚动条控件设计如图所示逐渐显示图片界面。
Private Sub Form_Load() Image1.Picture = LoadPicture("d:\car1.jpg") Label1.Width = Image1.Width
End Sub
滚动条控件拓展


滚动条分为水平滚动条和垂直滚动条。
常用属性有:
Max、Min、Value、SmallChange、LargeChange
常用事件有: Change、Scroll
滚动条常用属性
滑块在滚动条上的位置。 滚动条被,其Value值在Max和Min之间变化。
滑快的位置 就是Value属 性的值
1
滚动条常用属性
单击滚动条的空白处时,滑块移动的增量值。
(4) LargeChange属性
滚动条的 空白处
1
滚动条常用属性
单击滚动条两端的箭头时,滑块移动的增量值。
(5) SmallChange属性
滚动条的 箭头
2
(1) Change事件
滚动条常用事件
当Value 属性的值改变时触发该事件。(滑块移动、单击滚动
箭头都可使Value值变化)
Value 属性的值 改变时Change事 件发生
2
(2) Scroll事件
滚动条常用事件
(VscrollBar)。
水平滚动条 垂直滚动条

实验11 进展条、滚动条和滑动条

实验11 进展条、滚动条和滑动条

实验11 进展条、滚动条和滑动条实验内容设计一个对话框应用程序Ex_Color,其运行结果如图T11.1所示。

操作滚动条、滑动条和进展条控件可以调整RGB颜色的3个颜色分量:R(红色分量)、G(绿色分量)和B(蓝色分量),并根据用户指定的颜色填充控件。

实验准备和说明(1)在学习完第四章内容之后计息本次实验。

(2)构思本次上机所需要的程序。

实验步骤1.创建工作文件夹打开计算机,在”D:\Visual C++程序\LiMing” 文件夹中创建一个新子文件夹“实验11”。

2.设计对话框设计对话框的具体步骤如下。

(1)启动Visual C++6.0(2)创建一个默认的基于对话框应用程序项目Ex_Color ,在“新建”对话框中将项目文件夹定位到D:\Visual C++程序\LiMing\实验11(3)在打开的对话框资源模板中,将对话框的标题属性改为“控件颜色设置”,删除“取消”按钮,并将“确定”按钮的标题属性改为“退出”。

(4)显示对话框网络,调整对话框的大小,参照如图T11.1所示控件的布局,向对话框添加入表T11.1所示的控件,调整控件的位置。

(5)打开MFC ClassWizard,在MFC ClassWizard 的Menber Variables页面中,确定Class name 中是否已选择了Cex_InputDIg,选中所需的控件ID标识符,双击鼠标或单击Add Variables 按钮。

依次为如表T11.2所示的控件增加成员变量。

3.增加成员函数Draw增加成员函数 Draw 的具体步骤如下。

(1)展开项目工作区窗口Class View中的Cex_ColorDlg类的所有结点。

(2)用鼠标右键单击Cex_ColorDlg 类结点,从弹出的快捷菜单中选择” Add Member Function (增加成员变量),弹出如图T11.2所示的Add Member Function 对话框。

(3)在Function Type 框中输入成员函数类型 void ,在Function Declaration 框中输入成员函数声明者Draw(UINT nID)。

vb滚动条教学设计说课材料

vb滚动条教学设计说课材料

v b滚动条教学设计《vb滚动条》教学设计收集于网络,如有侵权请联系管理员删除收集于网络,如有侵权请联系管理员删除3、SmallChange(小改变)属性:当用户单击滚动条左右边上的箭头时,滚动条控件Value 值的改变量就是 SmallChange,如图4、LargeChange(大改变)属性:单击滚动条中滚动框前面或后面的部位时,引发Value 值按 LargeChange 设定的数值进行改变。

如图学生听讲掌握知识内容学生完成《制作显示数据》的案例基础教学,全体同学都要掌握案例教学可以让学生更明确所学何用。

增强学生动手操作能力体现分层教收集于网络,如有侵权请联系管理员删除二、滚动条控件的事件:与滚动条控件相关的事件主要是 Scroll 与Change ,当在滚动条内拖动滚动框时会触发 Scroll 事件(但要注意,单击滚动箭头或滚动条时不发生Scroll 事件),滚动框发生位置改变后则会触发Change 事件。

Scroll 事件用来跟踪滚动条中的动态变化,Change 事件则用来得到滚动条最后的值。

三、编写稻草人换头的颜色案例讲解RGB色彩模式合成颜色的原理。

RGB色彩模式的取值范围是0~255,我们把三个滚动条的值分别赋给RGB函数的3个参数,就可以得到各种颜色。

温柔提醒:使用RGB函数调配颜色时,每个参数的最大值为255.MAX属性值的作用是限定Value 的最大值。

所以,把滚动条的MAX 属性值设为255.Private Sub hscroll1_change()Shape1.FillColor = RGB(HScroll1.Value,布置学生完成案例二同学可以互相询问以及探讨举一反三为迅速完成的同学增加的案例学让不同程度的学生都得以最大限度的锻炼和提高培养学生互相帮助,自主学习和探究式学习的能力,学会学以致用。

收集于网络,如有侵权请联系管理员删除收集于网络,如有侵权请联系管理员删除。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验名称滚动条的设计应用
一、实验目的
1.掌握滚动条的属性设置;
2.掌握滚动条的事件;
3.学会滚动条的设计应用。

二、实验内容
1、
2、在名称为Form1的窗体上画一个命令按钮和一个水平滚动条,其名称分别为Command1和Hscroll1,编写适当的事件过程。

程序运行后,如果单击命令按钮,则按如下要求设置水平滚动条的属性:
Max=窗体宽度
Min=0
LargeChange=50
SmallChange=10
而如果移动水平滚动条的滚动框,则在窗体上显示滚动框的位置值。

3、
4、在窗体上画一个标签,输入内容为自己姓氏,再画一个水平流动条,滚动条的最小值为8,最大值为200,SmallChange为3,largeChange为10。

程序运行时,当滚动框的位置发生改变时标签上的字也跟着变大。

5、
6、调色板制作:按照给出的调色板应用程序的功能。

自己动手实现。

说明:窗体上有8个标签,其中7个标签的标题如图所示,还有一个标签用于显示颜色。

还有3个滚动条(取值范围是0~255,即颜色的取值范围。

),2个命令按钮。

程序运行:通过调整红,绿,蓝,三种颜色的滚动条中的值来实现颜色的修改。

提示:颜色的合成要使用RGB(red,green,blue)这个函数,其中red、green、blue是分别代表红,绿,蓝的三个数据,值在0到255之间。

三、实验体会。

相关文档
最新文档