VB时钟控件控制移动
- 格式:doc
- 大小:105.50 KB
- 文档页数:9
vba光标移动至控件并激活控件的语句-概述说明以及解释1.引言1.1 概述概述部分的内容:在VBA编程中,控件的重要性无法忽视。
控件是用户界面的重要组成部分,它们允许用户与应用程序进行交互并提供了各种功能。
然而,控件的操作和管理并不总是容易的任务。
在设计和开发过程中,我们常常需要将光标移动到特定的控件上,并激活该控件以执行相应的操作。
光标在VBA中具有重要的作用。
它允许我们在用户界面上定位并选择特定的控件,以便与之进行交互。
通过正确地移动光标并激活控件,我们可以实现更高效、准确和用户友好的操作。
本文将介绍一些常用的VBA语句,这些语句可以使光标移动到控件所在的位置,并激活该控件。
通过使用这些语句,我们可以提高程序的交互性,使用户能够更方便地操作应用程序。
接下来,本文将详细介绍VBA中控件的重要性,以及光标在VBA中的作用。
然后,我们将重点讨论如何使用VBA语句将光标移动到控件上,并激活该控件的方法和技巧。
最后,我们将总结控件激活的重要性,并展望光标移动至控件的语句在未来的应用前景。
通过阅读本文,读者将能够了解VBA中控件的重要性,了解光标在VBA中的作用,并学习到如何使用VBA语句将光标移动至控件并激活该控件。
这将有助于读者提高程序的交互性,使用户体验更加友好和便捷。
1.2文章结构1.2 文章结构本文主要分为引言、正文和结论三个部分。
引言部分首先对本文的内容进行概述,介绍VBA中控件的重要性和光标的作用,并明确了本文的目的。
正文部分分为三个子节:VBA中控件的重要性、VBA中光标的作用,以及光标移动至控件并激活控件的语句。
在"VBA中控件的重要性"中,将详细说明控件在VBA中的作用和应用场景,以及控件在用户界面设计中的重要性;在"VBA中光标的作用"中,将探讨光标在VBA中的作用和使用方法,以及光标在用户交互中的重要性;在"光标移动至控件并激活控件的语句"中,将详细介绍如何使用VBA语句将光标移动至指定控件并激活该控件,以及示例代码和应用技巧。
闲着么事使用VS2010VB制作了一个小时钟,功能是指针型的,在正常情况下时钟窗体是隐藏的,只有再点击鼠标展开时窗体才会出现并点击移动。
下面是效果图以下是实现代码,只要建立一个VS2010VB窗体工程添加相关控件即可以实现。
欢迎指正也为初学者一个参考,并希望能够带来帮助。
——青檐铃风Public Class Form1'Private Declare Function CreateEllipticRgn Lib"gdi32"(ByRef X1As Long,_'ByRef Y1As Long,ByRef X2As Long,ByRef Y2As Long)As Long'Private Declare Function SetWindowRgn Lib"user32"(ByRef hWnd As Long,_'ByRef hRgn As Long,ByRef bRedraw As Long)As Long'Dim a,b As Long'Dim w,h As LongDim sdeg,srad,Mdeg,mrad,hdeg,hradDim xx1%,yy1%'宣告变量xx1,yy1为整型(给圆心用的)Dim FormVieFlag As Integer=0Private Sub Form1_Load(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MyBase.Load'w=Me.Width'h=Me.Height'a=CreateEllipticRgn(0,0,w,h)'b=SetWindowRgn(Me.hWnd,a,True)'设置椭圆形窗体'Me.Move(Screen.Width-Me.Width)\2,(Screen.Height-Me.Height)\2'PictureBox1.Image.Save("c:\桌面")'Me.FormBorderStyle=Windows.Forms.FormBorderStyle.NoneLabel1.Visible=False'Label2.Visible=FalseButton2.Visible=FalseButton1.Visible=False'计算圆心的x轴xx1xx1=142'Me.Width\2'计算圆心的y轴yy1yy1=142'(Me.Height-15)\2'将下面3根针的起点x1,y1全定位在圆心上Line1.X1=xx1:Line1.Y1=yy1Line2.X1=xx1:Line2.Y1=yy1Line3.X1=xx1:Line3.Y1=yy1'画钟的外匡让线条粗一点'Cicle1.BorderWidth=5'Cicle1.FillColor=Color.Red'画一个圆'Cicle1.Move(-Me.Width)\2,(-Me.Height)\2Line2.BorderWidth=1'秒针的粗度'Line2.BorderColor=Color.Blue'秒针的颜色Line1.BorderWidth=2'分针的粗度'Line1.BorderColor=Color.Black'分针的颜色Line3.BorderWidth=3'时针的粗度'Line3.BorderColor=Color.YellowGreen'时针的颜色Timer1.Interval=500Call ShowTime()End SubPrivate Sub Timer1_Tick1(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Timer1.TickCall ShowTime()Label1.Text=TimeOfDayDim P2As Point=MousePositionIf P2.X>Me.Location.X And P2.X<Me.Location.X+Me.Width And P2.Y< Me.Location.Y+Me.Height And P2.Y>Me.Location.Y ThenIf Me.FormBorderStyle<>Windows.Forms.FormBorderStyle.Sizable And FormVieFlag=1ThenMe.Location=New Point(Me.Location.X,Me.Location.Y-30)Me.FormBorderStyle=Windows.Forms.FormBorderStyle.SizableElseIf Me.FormBorderStyle<>Windows.Forms.FormBorderStyle.None And FormVieFlag=0ThenMe.Location=New Point(Me.Location.X,Me.Location.Y+30)Me.FormBorderStyle=Windows.Forms.FormBorderStyle.NoneEnd IfLabel1.Visible=True'Label2.Visible=TrueButton2.Visible=TrueButton1.Visible=TrueElseIf Me.FormBorderStyle<>Windows.Forms.FormBorderStyle.None ThenMe.Location=New Point(Me.Location.X,Me.Location.Y+30)Me.FormBorderStyle=Windows.Forms.FormBorderStyle.NoneEnd IfLabel1.Visible=False'Label2.Visible=FalseButton2.Visible=FalseButton1.Visible=FalseFormVieFlag=0End IfEnd SubPrivate Sub ShowTime()Me.Text=TimeOfDay'标题栏显示现在时间'Second Hand'画秒针'计算秒针的角度,每一秒是360度除以60秒=6度,所以要乘上6sdeg=Second(TimeOfDay)*6'vb是以弧度为单位来计算,所以角度换算弧度是3.14/180,秒针跑了N度就乘上Nsrad=(3.14/180)*sdeg'900是秒针的长度,以圆心(line2的x1,y1)为准,计算出在这个弧度时line2.x2在什么位置Line2.X2=Line2.X1+(95*Math.Sin(srad))'900是秒针的长度,以圆心(line2的x1,y1)为准,计算出在这个弧度时line2.y2在什么位置Line2.Y2=Line2.Y1-(95*Math.Cos(srad))'Minute Hand'画分针'计算分针的角度,每一分是360度除以60分=6度,所以要乘上6,秒针动分针也会动,'所以还要加上秒针移动所产生的分针移动.'秒针转了1圈360度,分针才会前进1分钟=6度,所以比例是6/360等于1/60Mdeg=Minute(TimeOfDay)*6+(sdeg*1/60)'vb是以弧度为单位来计算,所以角度换算弧度是3.14/180,分针跑了N度就乘上Nmrad=(3.14/180)*Mdeg'vb是以弧度为单位来计算,所以角度换算弧度是3.14/180,分针跑了N度就乘上N'750是分针的长度,以圆心(line1的x1,y1)为准,计算出在这个弧度时line1.x2在什么位置Line1.X2=(80*Math.Sin(mrad))+Line1.X1'750是分针的长度,以圆心(line1的x1,y1)为准,计算出在这个弧度时line1.y2在什么位置Line1.Y2=Line1.Y1-(80*Math.Cos(mrad))'Hour Hand'画时针'计算时针的角度,每一小时时针跑30度,分针动时针也会动,所以还要加上分针移动所产生的时针移动.'分针转了1圈360度,时针才会前进1刻划=30度,所以比例是30/360等于1/12hdeg=Hour(TimeOfDay)*30+(Mdeg/12)'vb是以弧度为单位来计算,所以角度换算弧度是3.14/180,时针跑了N度就乘上Nhrad=(3.14/180)*hdeg'500是时针的长度,以圆心(line3的x1,y1)为准,计算出在这个弧度时line3.x2在什么位置Line3.X2=(60*Math.Sin(hrad))+Line3.X1'500是时针的长度,以圆心(line3的x1,y1)为准,计算出在这个弧度时line3.y2在什么位置Line3.Y2=Line3.Y1-(60*Math.Cos(hrad))End SubPrivate Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.ClickMe.Close()'卸载本窗口end subEnd SubPrivate Sub Button2_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button2.ClickIf FormVieFlag=0ThenFormVieFlag=1ElseFormVieFlag=0End IfEnd SubEnd Class。
5第五讲控件移动方法VB程序设计中控件的移动的方法一.修改控件的left和top属性说明:left属性是表示控件在窗体上的横坐标即控件的左边界至窗体左边界的距离top属性是表示控件在窗体上的纵坐标即控件的上边界到窗体上边界的距离height属性是表示控件的高度width属性是表示控件的宽度scaleheight:表示对象的可用高度(不包括边界和标题)scalewidth:表示对象的可用宽度说明:设有控件label1,修改它的横坐标,就可以横向移动,可以用下列语句label1.left=label1.left+100 ‘向右移动label1.left=label1.left-100 “向左移动,数值大小可以根据需要进行修改修改纵坐标可以上下移动如:label1.top=label1.top+100 ‘向下移动label1.top=label1.top-100 ‘向上移动数值大小可以根据需要进行修改上述语句只能移动一次,要想连续移动,可以结合定时器一起使用,让控件坐标每隔一段时间就改变一下,从而控件移动。
二.利用MOVE方法形式:[对象.]move (left as single ,[top],[width],[height])其中:left表示横坐标,top表示纵坐标,width表示对象移动后的宽度值height表示对象移动后的高度值说明:通过move方法将对象移到新的坐标上实现移动,其中横坐标不能省略,其它参数可以省略。
如:label1.move 100 ‘表示将标签框移动到横坐标为100的位置上label1.move label1.left+100 ‘表示将标签框移动到本身横坐标再加100的坐标位置上。
此时标签框是横向移动label1.move label1.left ,label1.top+100 ‘标签框纵向移动(上下移动)如果想连续移动,结合定时器一起使用。
三.其它方法练习:在窗体标题栏中显示滚动字幕标题。
VB可视化程序设计实例——小时钟本例专门针对程序设计初学者而设计,尤其适合第一次接触VB的学生学习。
通过用VB来设计如图3.39所示的时钟程序,初步感受一下可视化和面向对象的程序设计过程。
图3.39 时钟程序运行效果小时钟程序中包含窗体控件、标签控件和计时器控件等3个控件。
窗体控件是小时钟程序运行时的窗口,标题栏上的标题是“时钟”,在右上角有最小化、最大化和关闭按钮。
标签控件可以用来显示文本,本例中用来显示时间,如“9:48:57”。
计时器控件每秒一次把计算机的当前系统时间显示到标签控件中,使得小时钟不停地运行。
Array启动VB,首先显示“新建工程”对话框(图3.40),在选择“新建”选项卡中的“标准EXE”项后,单击“打开”按钮,进入VB编程环境,如图3.41所示。
图3.40 “新建工程”对话框图3.41 VB 可视化编程环境 除了标题栏、菜单栏和标准工具栏外,编程环境中还有工具箱、窗体和属性等窗口。
双击工具箱(图3.42)中的标签控件,在窗体Form1中放置可以显示文本信息的标签控件Label1,见图3.43。
时钟的时、分和秒以后就显示在Label1中。
拖曳Label1可以移动它,拖曳它的八个控制点,可以改变它的大小。
图3.42 工具箱 图3.43 label1控件 图3.44 计时器控件双击工具箱中的计时器控件,在窗体Form1中放置计时器控件Timer1,见图3.44。
计时器控件以一定的时间周期,调用一个事件。
计时器控件只有在设计阶段出现在窗体上,程序运行时是不可见的,它的位置和大小无关紧要。
到目前为止,已经建立了窗体Form1、标签控件Label1和计时器控件Timer1等3个对象。
下面,将设置它们的属性。
窗体窗口图3.45 窗体Form1属性图3.46 窗体Form1 单击窗体Form1,属性窗口中出现Form1的属性,见图3.45。
在Caption(标题)属性内,输入“时钟”,Form1的标题栏就显示“时钟”,见图3.46。
VB屏幕移动Private Sub Timer1_Timer()Label1.Left = Label1.Left + 100If Label1.Left + Label1.Width >= Form1.Width ThenTimer2.Enabled = TrueTimer1.Enabled = FalseEnd IfEnd SubPrivate Sub Timer2_Timer()Label1.Left = Label1.Left - 100If Label1.Left = 0 ThenTimer1.Enabled = TrueTimer2.Enabled = FalseEnd IfEnd Sub--------------------------------------------Private Sub Timer1_Timer()strTime = Str(Time)Label1.Caption = "现在时间是:" + strTime + ". " + Str(ms) If Label1.Left > = -Label1.Width ThenLabel1.Left = Label1.Left - 20ElseLabel1.Left = Form1.WidthEnd IfIf ms < 9 Thenms = ms + 1Elsems = 0End If---------------------------------------------------vb 图片移动(上下,左右,斜对角)Private Sub Command1_Click()'上下移动Timer1.Interval = 100Timer2.Interval = 0Timer3.Interval = 0Timer4.Interval = 0End SubPrivate Sub Command2_Click()'下山移动Timer2.Interval = 100Timer1.Interval = 0Timer3.Interval = 0Timer4.Interval = 0End SubPrivate Sub Command3_Click()'左右斜对角移动 Timer3.Interval = 100Timer1.Interval = 0Timer2.Interval = 0Timer4.Interval = 0End SubPrivate Sub Command4_Click() '复位Image1.Left = 800Image1.Top = 600Timer1.Interval = 0Timer2.Interval = 0Timer3.Interval = 0Timer4.Interval = 0End SubPrivate Sub Command5_Click()'退出Unload MeEnd SubPrivate Sub Command6_Click()'右左斜对角移动 Timer4.Interval = 100Timer1.Interval = 0Timer2.Interval = 0Timer3.Interval = 0End SubPrivate Sub Form_Load() '初始化Image1.Left = 800Image1.Top = 600Timer1.Interval = 0Timer3.Interval = 0End SubPrivate Sub mymove1() '从上到下Image1.Move Image1.Left, Image1.Top + 50If Image1.Top > Form1.Height Then Image1.Top = 0 '保证在窗体里移动End SubPrivate Sub Timer1_Timer()Call mymove1End SubPrivate Sub mymove2() '从下到上Image1.Move Left, Image1.Top - 50, Image1.Width, Image1.HeightIf Image1.Top < 0 Then Image1.Top = Form1.Height '保证在窗体里移动End SubPrivate Sub Timer2_Timer()Call mymove2End SubPrivate Sub Timer3_Timer()Call mymove3End SubPrivate Sub mymove3() '左右斜对角Image1.Move Image1.Left + 50, Image1.Top + 50If Image1.Top > Form1.Height Then Image1.Top = 0If Image1.Left > Form1.Width Then Image1.Left = 0 '保证在窗体里移动End SubPrivate Sub Timer4_Timer()Call mymove4End SubPrivate Sub mymove4() '右左斜对角Image1.Move Image1.Left - 50, Image1.Top + 50If Image1.Top > Form1.Height Then Image1.Top = 0If Image1.Left < 0 Then Image1.Left = Form1.Width'保证在窗体里移动End Sub加红色部分是为了让图片在form里运动,不使图片“消失”在VB中制作可滚动的图像显示滚动字幕:Private Sub Timer4_Timer()Label10.Caption = Right$(Label10.Caption, Len(Label10.Caption) - 1) & Left$(La bel10.Caption, 1)End Sub在窗体放一个标签Label1,将其Caption属性设为要显示的文字。
实例3 动画电子钟表“动画电子钟表”程序运行后,一个不断随系统时间变化的电子钟表从窗体的左边水平向右移动,当钟表移出窗体后,又从窗体左边移入窗体,如此不断循环播放。
程序运行中的两个画面如图所示。
1.设置对象的属性(1)创建4个对象,1个窗体对象,名字为“Form1”,3个时钟对象,名字依次为“Timerl”、“Tim e r2”和“Timer3”,3个标签对象,名字为“Label1”、“Label2”和“Labe13”。
(2)“Form1”窗体对象的属性设置:Caption属性为“动画电子钟表”;Picrure属性为一幅风景图象;StartUpPosition属性设置为"2-屏幕中间”:Width属性为5505。
(3)“Label1”标签对象的属性设置:Caption属性为“12:12:12”:BackStyle属性为0,表示文字背景透明:ForeColor属性为红色:字体属性设置为宋体,大小为小初,字形为粗体,Left属性为-2700(保证标签位于左边,并只显示一小部分)。
该标签用来显示时钟。
(4)“Labe12”标签对象的属性设置:Caption属性为“北京时间”,BackStyle属性为0,表示文字背景透明,Forecolor属性为红色;字体属性设置为隶书,大小为小初,字形为粗体,Left属性为1320(保证标签居中)。
该标签用来显示“北京时间”标题。
(5)“Labe13”标签对象的属性设置:Caption属性值为空值;BackStyle 属性为0,表示文字背景透明;ForeColor属性为黄色:字体属性设置为宋体,大小为小一,字形为粗体,Left属性为1680(保证标签居中)。
该标签用来显示日期。
(6)“Timer1”时钟对象用来与“Label1”标签对象共同产生数字钟效果。
它的Interval属性值为1000(即1秒),表示触发计时事件的时间间隔为1秒:Enabled属性值为True,表示时钟对象计时有效。
VB中时钟控件的几种运用摘要:时钟控件是vb中一个非常重要的常用控件。
它的主要功能是利用系统内部的计时器计时产行时间间隔,定时完成某项任务及进行某种后台处理.正确灵活的运用好时钟控件的设计,可以使我们在应用程序设计中产生非常理想的一些效果. 本文用实例来介绍在vb程序中利用计时器控件与其它控件结合使用产生不同的应用效果。
关键词:timer控件;动态应用;动画设计中图分类号:tp31vb时钟控件(timer)又称计时器、定时器控件,用于按指定的时间间隔周期性地自动触发事件。
它主要有两个功能:一是用于定时完成某项任务,即每隔一段固定的时间就执行一次相同的任务。
另一个是进行某种后台处理。
时钟控件只有一个事件,就是timer 定时器事件。
通过触发timer事件,时钟控件可以有规律地隔一段时间执行一次代码。
时钟控件的关键属性有两个:(1)enabled用于设置timer控件是否响应timer定时器事件。
属性值为true和false。
(2)interval用于返回或设置对timer控件的定时器事件调用周期的时间间隔。
以毫秒为单位,取值范围为0-65535毫秒。
时钟控件在设计时出现在窗体中,而在程序运行阶段是不可见的。
1 计时器(timer)控件与滚动条(hscrollbar)控件的应用1.1 自动求阶乘设计在窗体上设置1个滚动条控件、2个标签控件、1个时钟控件和2个命令按钮(如图1)。
相应代码如下dim n, j, i ‘定义n,j,i三个整型变量private sub command1_click()‘开始按钮事件timer1.enabled = trueend subprivate sub command2_click();暂停按钮事件timer1.enabled = falseend subprivate sub timer1_timer()‘timer事件过程n = hscroll1.valuej = 1for i = 1 to n ‘循环计算n!j = j * inextclslabel1.caption = str(n) + “!=“label2.caption = jif hscroll1.value private sub command3_click()‘退出按钮endend subprivate sub form_load()‘窗体初始化label1.left = form1.widthlabel1.caption = “中华人民共和国”label1.fontsize = 30timer1.interval = 100end subprivate sub timer1_timer()‘timer事件过程label1.left = label1.left - 20if label1.left + label1.width > 0 thenlabel1.left = label1.left - 100elselabel1.left = form1.widthend ifend sub运行结果如图64 计时器(timer)控件与图片框(picturebox)控件和图像框(image)控件的应用。
VB常用控件的属性及功能(转帖)控件目录:Form(窗体)、PictureBox(图片框)、Label(标签)、TextBox(文本框)、Frame(框架)、CommandButton (命令按钮)、OptionButton(选项按钮)、ListBox(列表框)、Hscrollbar(水平滚动条)Vscrollbar(垂直滚动条)、Timer(时钟)、Shape(形状)、Line(直线)、Image(图片框)、OLE Container(OLE容器)Form(窗体) 的常用属性及功能1. name (窗体名称):为窗体指定一个名字。
2. Appearance:设置一个窗体是否运行时以3D效果显示。
0—Flat:窗体以平面的形式显示,1—3D:窗体以3D的形式显示(默认值)。
3. AutoRedraw:控制窗体的重画。
True:若其他窗口覆盖当前窗体再返回该再返回该窗体时,VB将重画该窗体内的所有图形False:VB必须调用一个事件过程才能完成重画。
4. BackColor:设置对象中文本和图形的背景色。
5. ForeColor:设置对象中文本和图形的前景色。
6. BorderStyle:为窗体等对象设置边框的式样。
0—None:窗体无边框1—FixedSingle:程序运行后窗体大小不被改变,单线边框2—Sizable:程序运行后窗体大小可以被改变,双线边框3—FixedDouble:程序运行后窗体大小不被改变,双线边框4—FixedToolWindo:程序运行后窗体大小可以被改变,单线边框5—SizableToolWindow:程序运行后窗体大小可以被改变。
7. Caption:设置窗体标题栏显示的文本。
8. Clipcontrols:设置Paint事件的绘图方法—是重画整个对象还是重画新显示的区域。
True:重画整个对象False:重画新显示的区域。
9. ControlBox:运行程序时该属性有效。
vb中timer的用法在VB(Visual Basic)中,Timer 控件用于在程序中创建定时器。
它可以帮助你以固定的时间间隔执行特定的操作。
下面是在 VB 中使用Timer 控件的基本步骤:1. 添加 Timer 控件:在 VB 的工具箱(Toolbox)中,找到 Timer 控件并拖动到你的窗体上。
2. 设置 Timer 的属性:在 Timer 控件的属性窗口中,你可以设置两个重要的属性:Interval:以毫秒为单位的时间间隔。
它的范围是 0 到 65535。
设置为 0 将禁用定时器。
Enabled:这个属性决定定时器是否启用。
设置为 True 表示启用定时器。
3. 编写 Timer 的事件处理程序:当 Timer 的时间间隔过去后,它会触发一个名为 TimerEvent 的事件。
你可以在代码中编写这个事件的处理程序。
例如,你可以在 Form 的代码窗口中添加以下代码来处理 Timer 的事件:vbPrivate Sub Timer1_Timer()' 这里编写定时器每次触发时执行的代码MsgBox "这是定时器的触发事件"End Sub4. 启动 Timer:在你的程序中,当你想要启动定时器时,设置 Timer 的 Enabled 属性为 True。
例如:vbTimer1.Enabled = True5. 停止 Timer:如果你想停止定时器,可以将 Timer 的 Enabled 属性设置为 False。
例如:vbTimer1.Enabled = False。
目录摘要 (iii)第1章概述 (1)1.1 引言 (1)1.2 设计平台 (1)第2章开发工具简介 (2)2.1 VisualBasic6.0简介 (2)2.2 运用的控件和主要对象 (3)3.1主窗体 (4)Private Sub qiyong_Click() (5)3.2时钟窗体 (6)3.3屏幕保护窗体 (10)第4章结束语 (12)参考文献 (13)摘要Visual Basic(VB)是一种由微软公司开发的包含协助开发环境的事件驱动编程语言,从任何标准来说,VB都是世界上使用人数最多的语言。
它是一种面向对象的可视化程序设计语言,提供了集界面设计、编写代码和程序调试等于一体的集成开发环境。
VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。
程序员可以轻松的使用VB提供的组件快速建立一个应用程序。
本文通过动画式时钟的设计与实现,,同时说明了在VB环境下开发应用程序的思路和步骤。
关键词:程序设计;时钟;Visual Basic6.0;界面第1章概述1.1 引言visual basic继承了basic语言易学易用的特点,特别适合于初学者学习windows系统编程。
随着21世纪信息社会的到来,计算机在人们的工作和生活中的深入,要求我们越来越多地与计算机打交道,为了用户更加方便的,更加有舒适的心情,设计出一个比较舒心的时钟显示。
1.2 设计平台VB全称Visual Basic,它是以Basic语言作为其基本语言的一种可视化编程工具。
它继承了basic语言易学易用的特点,特别适合于初学者学习windows系统编程。
随着21世纪信息社会的到来,计算机在人们的工作和生活中的深入,要求我们越来越多地与计算机打交道,为了使用户更加地使用舒心。
第2章开发工具简介2.1 VisualBasic6.0简介Visual Basic 是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发 Windows 环境下的各类应用程序。
1、打开VB,VB为你添加了一个窗体。
(一般新建的工程都会有一个窗体,不用添加)主要属性为:Caption:钟表controlBox:False width:4800 height:5800 startUpPosition:2-屏幕中心2、再在窗体上放一个图形控件。
Height:2940 left:600 top:375 width:3400 borderwidth:3 shape:3-circleFillstyle:0-Solid fillcolor:选一个你喜欢的颜色。
3、再在窗体上添加三条直线,直线的起点放在图形的图心上。
主要属性如下:(三条线都如下设置)x1:2300 Y1:1845 X2 与Y2可以任意设置,BorderColor:选一个你喜欢的色BorderWidth:34、添加四个标签,分别修改其Caption为“3”、“6”、“9”、“12”,同时修改这四个标签的BackStyle属性为0-Transparent,并且把这四个标签移动到圆的最右,最下,最左,最上四个位置。
5、添加一个文本框。
主要属性为:Left:900 height:555 top:4215 width:3240至此,我们的钟表程序界面设置完成。
如下图7、现在让表的指针动起来。
在窗体上添加一个时间控件。
修改其interval属性为100,注:这个数值的单位是毫秒,单位很小,1000毫秒才等于1秒。
但是在VB中这不足以用来记时,时为程序在运行的时候影响了记时的准确性。
所以,我们要准确的表达时间的话,要用到系统时间,这要做用一个函数,就是NOW()。
这个函数的返回值就是当前的系统时间。
8、让指针动起来,就是要在时间变化的时候修改指针不在圆心点的坐标。
我们先来分析秒针:我们知道,一周角为360度,表示60秒,那么每一秒需要用6度来表示,那么,当时间走到S秒的时候,秒针走过6*S度也就是:6*S*3.1415926/180弧度(注,一周角为2*3.14159弧度)。
Private Sub Check1_Click()WindowsMediaPlayer1.Controls.pauseEnd SubPrivate Sub Check2_Click()WindowsMediaPlayer1.Controls.playEnd SubPrivate Sub Check3_Click()WindowsMediaPlayer1.Controls.stopEnd SubPrivate Sub Command1_Click()Timer1.Interval = 1000Timer1.Enabled = TrueEnd SubPrivate Sub Command2_Click()Timer2.Enabled = TrueTimer2.Interval = 1000End SubPrivate Sub Form_Load()Picture1.Picture = LoadPicture(App.Path & "\images\" & "tp1.jpg") End SubPrivate Sub Timer1_Timer()Static X!, Y!, Z!, a%, b%, c%, q%, w%, E%Const n = 3.141592653Command1.Visible = FalsePicture1.ClsPicture1.Scale (-1000, 1000)-(1000, -1000)Picture1.Circle (0, 0), 900Dim l As DoubleDim r As DoubleFor i = 0 To 60l = (1 - Sin(i / 60 * 2 * 3.1415926)) * 900 - 900r = (1 - Cos(i / 60 * 2 * 3.1415926)) * 900 - 900Picture1.DrawWidth = 3Picture1.PSet (l, r)Picture1.DrawWidth = 4Next iPicture1.PSet (0, 0)Picture1.CurrentX = -100: Picture1.CurrentY = 850Picture1.FontSize = 25Picture1.Print "12"Picture1.CurrentX = -40: Picture1.CurrentY = -690Picture1.Print "6"Picture1.CurrentX = -850: Picture1.CurrentY = 80Picture1.Print "9"Picture1.CurrentX = 700: Picture1.CurrentY = 100Picture1.Print "3"Picture1.FontSize = 18Picture1.CurrentX = 360: Picture1.CurrentY = 740Picture1.Print "1"Picture1.CurrentX = 650: Picture1.CurrentY = 450Picture1.Print "2"Picture1.CurrentX = 630: Picture1.CurrentY = -320Picture1.Print "4"Picture1.CurrentX = 360: Picture1.CurrentY = -600Picture1.Print "5"Picture1.CurrentX = -430: Picture1.CurrentY = 740Picture1.Print "11"Picture1.CurrentX = -750: Picture1.CurrentY = 440Picture1.Print "10"Picture1.CurrentX = -700: Picture1.CurrentY = -360Picture1.Print "8"Picture1.CurrentX = -370: Picture1.CurrentY = -610Picture1.Print "7"Picture1.DrawWidth = 1X = Second(Time) * 2 * n / 60Y = Minute(Time) * 2 * n / 60Z = Hour(Time) * 2 * n / 12Picture1.Line (0, 0)-(800 * Sin(X), 800 * Cos(X))Picture1.Circle (700 * Sin(X), 700 * Cos(X)), 50Picture1.Line (0, 0)-(600 * Sin(Y), 600 * Cos(Y)), QBColor(5)Picture1.Line (0, 0)-(400 * Sin(Z), 400 * Cos(Z)), QBColor(12)h = Year(Now)i = Month(Now)j = Day(Now)k = Hour(Now)l = Minute(Now)m = Second(Now)Label10.Caption = h & "-" & i & "-" & jLabel11.Caption = k & ":" & l & ":" & mu = Weekday(Now)Select Case uCase 1Label8.Caption = "一"Case 2Label8.Caption = "二"Case 3Label8.Caption = "三"Case 4Label8.Caption = "四"Case 5Label8.Caption = "五"Case 6Label8.Caption = "六"Case 7Label8.Caption = "日"End SelectEnd SubPrivate Sub Timer2_Timer()Dim z1, z2, z3, z4, z5, z6, z7, z8, z9, z10%z1 = V al(Text1.Text)z2 = V al(Text2.Text)z3 = V al(Text3.Text)z4 = V al(Text4.Text)z5 = V al(Text5.Text)z6 = V al(Text6.Text)date1 = DateSerial(z1, z2, z3)date2 = DateSerial(Year(Now), Month(Now), Day(Now))z7 = DateDiff("d", date2, date1)time1 = TimeSerial(z4, z5, z6)time2 = TimeSerial(Hour(Now), Minute(Now), Second(Now)) z8 = DateDiff("h", time2, time1)z9 = DateDiff("n", time2, time1) - z8 * 60z10 = DateDiff("s", time2, time1) - z9 * 60 - z8 * 3600If z2 > 12 Or z3 > 31 Or z4 > 23 Or z5 > 59 Or z6 > 59 Then q = MsgBox("输入有误,请重新输入", , "出错")Print qEnd IfIf z10 < 0 Thenz9 = z9 - 1z10 = 60 + z10End IfIf z9 < 0 Thenz8 = z8 - 1z9 = 60 + z9End IfIf z8 < 0 Thenz7 = z7 - 1z8 = 24 + z8End IfLabel14.Caption = z7 & "天" & z8 & "小时" & z9 & "分" & z10 & "秒"If z7 = 0 And z8 = 0 And z9 = 0 And z10 = 0 ThenMsgBox "时间到", , "倒计时"WindowsMediaPlayer1.URL = App.Path & "\music\" & "dd.mp3" Timer2.Enabled = FalseEnd IfEnd SubPrivate Sub tp1_Click()Picture1.Picture = LoadPicture(App.Path & "\images\" & "tp6.jpg") End SubPrivate Sub tp2_Click()Picture1.Picture = LoadPicture(App.Path & "\images\" & "tp2.jpg") End SubPrivate Sub tp3_Click()Picture1.Picture = LoadPicture(App.Path & "\images\" & "tp3.jpg") End SubPrivate Sub tp4_Click()Picture1.Picture = LoadPicture(App.Path & "\images\" & "tp4.jpg") End SubPrivate Sub tp5_Click()Picture1.Picture = LoadPicture(App.Path & "\images\" & "tp5.jpg") End SubPrivate Sub yy1_Click()WindowsMediaPlayer1.URL = App.Path & "\music\" & "He's a Pirate.mp3" End SubPrivate Sub yy2_Click()WindowsMediaPlayer1.URL = App.Path & "\music\" & "apologize.mp3" End SubPrivate Sub yy3_Click()WindowsMediaPlayer1.URL = App.Path & "\music\" & "Heartbeats.mp3" End Sub。
7.vb设计时钟设计一个钟面,有时、分、秒指针,并在下面显示日期。
要求:界面为图像背景,时、分、秒指针都在走;半点和整点都有声音提醒;时、分、秒都可以调整。
Const pi = 3.1415926Dim sj As StringPrivate Sub Command1_Click()Dim a As Datea = Text1.Text & ":" & Minute(Time) & ":" & Second(Time)Time = aEnd SubPrivate Sub Command2_Click()Dim b As Dateb = Hour(Time) & ":" & Text2.Text & ":" & Second(Time) Time = bEnd SubPrivate Sub Command3_Click()Dim c As Datec = Hour(Time) & ":" & Minute(Time) & ":" & Text3.Text Time = cEnd SubPrivate Sub Form_Load()Dim a1 As Single, b1 As Singlea1 = Line1.X1 - Line1.X2b1 = Line1.Y1 - Line1.Y2a2 = Line2.X1 - Line2.X2b3 = Line2.Y1 - Line2.Y2a3 = Line3.X1 - Line3.X2b3 = Line3.Y1 - Line3.Y2Line1.Tag = Function1(a1, b1)Line2.Tag = Function1(a2, b2)Line3.Tag = Function1(a3, b3)Form1.Caption = Format(Time, "Medium Time") '获取系统时间End SubPrivate Sub Timer1_Timer()s = Second(Time)Line1.X1 = Line1.X2 + Line1.Tag * Sin(pi * s / 30)Line1.Y1 = Line1.Y2 - Line1.Tag * Cos(pi * s / 30)Form1.Caption = Format(Time, "Medium Time")m = Minute(Time)Line2.X1 = Line2.X2 + Line2.Tag * Sin(pi * m / 30) Line2.Y1 = Line2.Y2 - Line2.Tag * Cos(pi * m / 30) h = Hour(Time)s = IIf(v >= 12, v - 12, v) + u / 60Line3.X1 = Line3.X2 + Line3.Tag * Sin(pi * h / 6) Line3.Y1 = Line3.Y2 - Line3.Tag * Cos(pi * h / 6) Label6.Caption = DateIf m = 0 And s = 0 ThenMMControl1.FileName = App.Path & "\2.wav"mand = "Open"mand = "Play"ElseIf m = 30 And s = 0 ThenMMControl1.FileName = App.Path & "\2.wav"mand = "Open"mand = "Play"Elsemand = "close"End IfEnd SubPublic Function Function1(ByVal a As Single, ByVal b As Single) As SingleDim c As Singlec = Sqr(a ^ 2 + b ^ 2)Function1 = cEnd Function。
沈阳理工大学机械工程学院Vb程序设计训练任务书学生姓名:班级:学号 :设计课题:时钟课题内容描述:制作一个提取系统时间并正确走时的时钟该时钟有时针、分针和秒针,并且可以走动,如果系统时间正确,则它的时间也准确。
1.如何画时钟表盘上的所有直线元素?用Load命令建立原始Line控制的14个拷贝(因为表盘有12个点和时、分、秒共15个Line),该控制数组每一个实例的端点坐标属性设置为每条线在时钟表盘上的适当位置,这些拷贝中大多数只放置一次,而3个Line控制每秒钟更新一次,产生时钟指针移动的感觉。
注意:在应用程序代码中并没有直接擦除任何一条线。
当我们改变每一个Line 控制的端点时,每一根针在移动时擦除和重画的所有技术工作都由VB来处理。
2.如何修改时针的形状?通过调整代码中的属性设置,可以改变时钟的形状。
例如:通过改变每一个Line控制的Borderwidth属性设置,可以建立更细或更粗的线。
3. 计时器的Interval(间距)属性设置计时器的Interval属性设置为1000,即为1秒。
程序的编写与执行。
应用程序功能的详细说明:时钟有时针、分针和秒针,并且可以走动,如果系统时间正确,则它的时间也准确。
同时,运行界面上会显示日期。
它是一个方便简洁的小程序,实用性很强!设计的目的:Vb设计训练是学习完《vb程序设计》课程后进行的一次全面的综合性上机实验。
其目的在于为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
VB的特点:1.面向对象2.事件驱动3.软件Software集成式开发4.结构化设计语言5.强大数据库访问功能6.支持对象链接和嵌入技术7. 网络功能8.多个应用向导9.支持动态交换、动态链接技术。
10联机帮助功能设计要点:应用了line控件、计时器控件、cricle方法。
思维过程:时钟的中盘表面用cricle方法绘制出圆。
第1题 Visual Basic版本有3个版本,按功能从强到弱的顺序是()A、工程版、专业版、学习版B、专业版、工程版、学习版C、企业版、专业版、学习版D、专业版、企业版、学习版第2题 Visual Basic是一种结构化高级程序设计语言,它采用的是()驱动方式A、键盘B、鼠标C、事件D、函数第3题 Visual Basic程序设计语言属于()A、面向过程的语言B、机器语言C、面向对象的语言D、汇编语言第4题 Visual Basic一共有设计、运行和中断三种模式,要使用调试工具应该()A、进入设计模式B、进入运行模式C、进入中断模式D、不用进入任何模式第5题假定一个Visual Basic应用程序由一个窗体模块和一个标准模块构成。
为了保存该应用程序,以下正确的操作是()A、只保存窗体模块文件B、分别保存窗体模块、标准模块和工程文件C、只保存窗体模块和标准模块文件D、只保存工程文件第6题在VB集成环境创建VB应用程序时,除了工具箱窗口、窗体窗口、属性窗口外,必不可少的窗口是()A、窗体布局窗口B、立即窗口C、代码窗口D、监视窗口第7题在VB环境中,工程文件的扩展名是()A、.frmB、.basC、.vbpD、.frx第8题将一个VB程序保存在磁盘上,至少会产生的文件是()A、.doc、.txtB、.com、.exeC、.vbp、.frmD、.bat、.sys第9题下面4项中不属于面向对象系统三要素的是()A、变量B、事件C、属性D、方法第10题下面各种高级语言中,不是面向对象程序设计语言的是()A、Visual BasicB、C++C、PascalD、Java第11题 VB6.0集成开发环境可以()A、编辑、调试、运行程序,但不能生成可执行程序B、编辑、生成可执行程序、运行程序,但不能调试程序C、编辑、调试、生成可执行程序,但不能运行程序D、编辑、调试、运行程序,也能生成可执行程序第12题英文“Visual”的含义是()A、可视化B、集成C、结构化D、调试第13题 VB6.0集成开发环境的工作模式有()A、一种B、两种C、三种D、四种第14题以下关于VB特点的叙述中,错误的是()A、VB是采用事件驱动编程机制的语言B、VB程序既可以编译运行,也可以解释运行C、构成VB程序的多个过程没有固定的执行顺序D、VB程序不是结构化程序,不具备结构化程序的三种基本结构第15题以下叙述中错误的是()A、VB是事件驱动型可视化编程工具B、VB应用程序不具有明显的开始和结束语句C、VB工具箱中的所有控件都具有宽度(width)和高度(height)属性D、VB中控件的某些属性只能再设计时设置第16题通过以下()窗口可以在设计时直观的调整窗体在屏幕上的位置。
一、实验目的、目标掌握VB程序设计语言的窗体,输入输出框、以及常用内部控件(标签、文本框、命令按钮和时钟)的使用方法,并结合实例进行应用。
二、实验内容课本77页3(3)设计一个窗体,依靠1个时钟,使4个标签(或4个形状)为蓝色、紫色、黄色、绿色彩条,有规律的移动,同时依靠时钟,使两个分别显示“快乐”、“学习”的标签,有规律的进行词组交换。
三、实验过程与步骤1.新建一个工程及一个窗体2.在窗体中,加入4个标签,打开属性窗口,设置他们的大小一致,分别将backcolor 设置成蓝色、紫色、黄色、绿色然后将4个标签拖到指定的位置,如下图:3.在窗体中加入一个时钟控件,调整其enabled为true,interval值为1.(要使标签移动的速度快且自然,不会一跳一跳的,所以interval设置为最小1)双击时钟控件打开代码窗口,输入以下代码:这些代码的作用就是使label1,2,3,4在窗体上下移动。
一开始定义一个数值类型的a,使其值为10,则下面if语句执行if a=10 then 后面的,执行到a=-10就开始执行else 的语句,执行完else语句后,a又变成10,则又返回执行前面的语句,如此,就可以实现标签在窗体上下移动。
4.在窗体中加入两个标签,label5,6,在属性窗口将其caption改为“快乐”“学习”,将标签的backcolor改为灰色,字体为黑体48号,forecolor为&H00FF8080&,&H00C0C000&。
并将其autosize改为true。
置于窗体中间。
5.再加入一个时钟控件,用来控制标签进行有规律的词组变化。
将时钟控件的属性设置如下(因为要使其变化慢一些,所以interval取1000):双击打开代码窗口,在timer2那里输入以下代码:代码的作用是实现两个标签在快乐,学习中不断变换。
并且字体的颜色也不断变换。
6.将所有标签排版好并运行调试排版如下:7.输出工程并保存工程四、测试数据及运行结果五、实验总结、经验分享一开始,我写的程序是使标签1,4移到最底的时候,它的top回到0,又从顶移到底,标签2,3移到最顶时,它的top回到最底,又从底移到顶,相应的代码如下:-3360为标签去到最顶时其top的值,7200为标签去到最底是top的值。
vb中timer控件的用法【原创版】目录一、引言二、VB 中 Timer 控件的概念与作用三、VB 中 Timer 控件的属性设置四、VB 中 Timer 控件的事件处理五、VB 中 Timer 控件的应用实例六、结语正文一、引言在 VB 编程中,Timer 控件是一种常用的时间控制控件,可以用来实现在一定时间间隔内执行特定任务的功能。
本文将详细介绍 VB 中 Timer 控件的用法,包括属性设置、事件处理以及应用实例。
二、VB 中 Timer 控件的概念与作用Timer 控件是 VB 中的一种计时器控件,可以用来控制程序在一定时间间隔内执行特定任务。
Timer 控件的主要作用是周期性地触发事件,实现程序的定时操作。
三、VB 中 Timer 控件的属性设置Timer 控件的主要属性有以下几个:1.Enabled:启用或禁用 Timer 控件。
默认值为 False。
当设置为True 时,Timer 控件开始计时;设置为 False 时,Timer 控件停止计时。
2.Interval:设置 Timer 控件的时间间隔,以毫秒为单位。
例如,设置为 1000 时,表示每隔 1000 毫秒(1 秒)触发一次事件。
3.Timer 控件的事件:Timer 控件的主要事件是 Tick 事件,每隔指定的时间间隔触发一次。
四、VB 中 Timer 控件的事件处理在 VB 中,Timer 控件的 Tick 事件是一种内置的事件,每隔指定的时间间隔自动触发。
可以通过编写事件处理程序来实现定时操作。
例如,可以在 Tick 事件中更新 Label 控件的文本内容,实现计时功能。
以下是一个简单的示例:```vbPrivate Sub Timer1_Tick()Label1.Text = Label1.Text + "1"End Sub```五、VB 中 Timer 控件的应用实例下面是一个完整的 VB 程序,演示了如何使用 Timer 控件实现一个简单的计时器功能:```vbImports SystemPublic Class Form1DimTimer1 As TimerDimLabel1 As LabelPrivate Sub Form1_Load()Timer1.Enabled = TrueTimer1.Interval = 1000Label1.Text = "0"End SubPrivate Sub Timer1_Tick()Label1.Text = Label1.Text + "1"End SubEnd Class```六、结语总之,VB 中的 Timer 控件是一种非常实用的时间控制控件,可以实现各种定时操作。
一、实验目的、目标
掌握VB程序设计语言的窗体,输入输出框、以及常用内部控件(标签、文本框、命令按钮和时钟)的使用方法,并结合实例进行应用。
二、实验内容
课本77页3(3)
设计一个窗体,依靠1个时钟,使4个标签(或4个形状)为蓝色、紫色、黄色、绿色彩条,有规律的移动,同时依靠时钟,使两个分别显示“快乐”、“学习”的标签,有规律的进行词组交换。
三、实验过程与步骤
1.新建一个工程及一个窗体
2.在窗体中,加入4个标签,打开属性窗口,设置他们的大小一致,分别将backcolor 设置成蓝色、紫色、黄色、绿色
然后将4个标签拖到指定的位置,如下图:
3.在窗体中加入一个时钟控件,调整其enabled为true,interval值为1.(要使标签移动的速度快且自然,不会一跳一跳的,所以interval设置为最小1)
双击时钟控件打开代码窗口,输入以下代码:
这些代码的作用就是使label1,2,3,4在窗体上下移动。
一开始定义一个数值类型的a,使其值为10,则下面if语句执行if a=10 then 后面的,执行到a=-10就开始执行else 的语句,执行完else语句后,a又变成10,则又返回执行前面的语句,如此,就可以实现标签在窗体上下移动。
4.在窗体中加入两个标签,label5,6,在属性窗口将其caption改为“快乐”“学习”,将标签的backcolor改为灰色,字体为黑体48号,forecolor为&H00FF8080&,&H00C0C000&。
并将其autosize改为true。
置于窗体中间。
5.再加入一个时钟控件,用来控制标签进行有规律的词组变化。
将时钟控件的属性设置如下(因为要使其变化慢一些,所以interval取1000):
双击打开代码窗口,在timer2那里输入以下代码:
代码的作用是实现两个标签在快乐,学习中不断变换。
并且字体的颜色也不断变换。
6.将所有标签排版好并运行调试
排版如下:
7.输出工程并保存工程
四、测试数据及运行结果
五、实验总结、经验分享
一开始,我写的程序是使标签1,4移到最底的时候,它的top回到0,又从顶移到底,标签2,3移到最顶时,它的top回到最底,又从底移到顶,相应的代码如下:
-3360为标签去到最顶时其top的值,7200为标签去到最底是top的值。
如此就使标签有
规律的移动,如工程2.
但是这不是我想要做的结果,我想做的是使标签碰到窗体的边后就返回。
于是我想了很多种方法都不行,本来想让其中一个到达top为0的时候所有都转向,因为我的标签是对其的,所有可以控制一个然后控制全部,然后我写了以下代码:
结果执行了之后达不到效果,才发现两个if语句自相矛盾了。
然后我就想通过改变一个变量的正负来改变加减,于是又写了以下代码:
结果还是自相矛盾了,在if后面的语句不知道怎么写才能让其选择做而不自相矛盾,后来就想到用一个变量的改变来控制,于是写了以下代码:
这回就成功了,期间用了很多种方法,想了很多个思路都实现不了,总之我觉得学语言还是好多调试。