VB控件的使用
- 格式:doc
- 大小:2.04 MB
- 文档页数:11
⼀、基本操作1、向窗体中添加控件⾸先将⿏标指针停在⼯具箱的控件上⼏秒钟,待显⽰出控件名,再作如下操作(当然,如果⽤户已经⾮常熟悉控件的含义,这⼀步可以省略)。
⽅法⼀:把光标移到⼯具箱上,单击控件图标,然后把光标移到窗体上(此时,窗体上的光标是⼀个⼗字形图标),在窗体上选择控件放置的初始化位置,然后按下⿏标左键,拖曳⿏标,直到所需的⼤⼩,松开⿏标按键即可。
⽅法⼆:另外⼀个⽅法是⽤⿏标双击控件图标,窗体中央出现默认⼤⼩的控件,拖动该控件到合适的位置即可。
⽅法三:单击控件,然后在窗体上设计好控件的⼤⼩,再⽤复制和粘贴命令拷贝控件,这时,屏幕上会出现⼀个对话框,询问是否要建⽴控件数组,单击“否”按钮,就把活动控件复制到窗体的左上⾓,可以获得同样尺⼨的控件。
但这种⽅法在使⽤时会发现,两个控件的名称是⼀样的,这不利于下⼀步⼯作;如果单击“是”,将建⽴⼀组索引号不同的控件组。
⽤这种⽅法创建的控件可以获得同样尺⼨。
说明:⽤双击控件的⽅法获得的控件⼤⼩是⼀致的,⽽且vB⾃动给第⼀个同名控件起名为“控件1”,第⼆个同名控件为“控件2”,依次类推。
⽤单击控件的⽅法,然后再在窗体上画控件,会导致控件⼤⼩不⼀,但vB还是⾃动给第⼀个同名控件起名为“控件l”,,第⼆个同名控件为“控件2”,依次类推。
为了能单击⼀次控件图标即可在窗体上画出多个相同类型的控件,可按如下步骤操作:按下Ctrl键,不要松开。
单击⼯具箱中想要画的控件图标,然后松开Ctrl键。
⽤前⾯介绍的⽅法在窗体上画出控件(可以画⼀个或多个)。
画完(⼀个或多个)后,单击⼯具箱中的指针图标(或其它图标)。
2、改变窗体上控件的⼤⼩选中控件,放置在窗体上的控件周围有⼋个⼩⽅块,这⼋个⼩⽅块⽤于改变窗体上控件的⼤⼩,故也称作尺⼨控制⼿柄。
把⿏标指针移到任何⼀个⼩⽅块上,待⿏标指针变成—个双向箭头时,移动⿏标就能改变窗体上控件的⼤⼩了。
3、移动窗体上的控件把⿏标指针移到控件上,拖曳⿏标,就能移动窗体上的控件。
vb中各个控件的作用在VB(Visual Basic)中,控件是应用程序的可视化元素,用于与用户进行交互。
每个控件都有不同的功能和作用,下面我将介绍一些常见VB控件的作用:1. Label控件:用于显示静态文本或说明信息。
Label控件通常用于显示不需要用户输入或交互的文本内容。
2. TextBox控件:用于接收用户输入的文本数据。
用户可以在TextBox控件中输入文本,以便应用程序对其进行处理和使用。
3. Button控件:用于触发特定操作或执行特定功能的按钮。
当用户点击Button 控件时,相应的事件将被触发,从而执行相应的代码。
4. ComboBox控件:提供了一个下拉列表,用户可以从中选择一个选项。
ComboBox控件通常用于提供限定的选择范围,让用户从中选择一个选项。
5. ListBox控件:提供了一个列表,用户可以从中选择一个或多个选项。
与ComboBox控件不同,用户可以直接在列表中进行选择。
6. CheckBox控件:提供了一个选择框,用户可以在多个选项中进行选择。
CheckBox控件通常用于表示二进制的选择,例如勾选或取消勾选一个选项。
7. RadioButton控件:提供了一组互斥的选项,只能选择其中的一个选项。
RadioButton控件通常用于表示互斥的选择,例如选择性别男或女。
8. PictureBox控件:用于显示图像、图标或其他图形。
PictureBox控件可以加载图像文件,并在应用程序中显示出来。
9. Timer控件:计时器控件,可用于在应用程序中生成定时事件。
通过设置定时器的时间间隔和相应事件的处理程序,可以实现定时执行某些操作的功能。
10. Menu控件:提供了一个菜单栏,用于组织和呈现应用程序的不同功能和选项。
用户可以通过点击菜单项来执行相应的功能。
以上是一些常见的VB控件及其作用。
掌握这些控件的使用方法,可以帮助开发人员创建功能完善、交互性强的VB应用程序。
vb控件数组的使用VB控件数组是在Visual Basic开发环境中用于处理大量相似控件的一种技术。
通过创建控件数组,可以方便地对一组控件进行集成处理,从而提高代码效率。
下面将详细介绍控件数组的使用及其注意事项。
1、控件数组的声明与初始化在VB中,声明控件数组与普通变量的方法类似。
通过使用Dim语句,在程序代码中声明一个控件数组,例如:Dim myButton(10) as CommandButton这里创建了10个命令按钮的数组,可以直接操作数组元素,如:myButton(0).Caption="Button1"myButton(1).Caption="Button2"当然,你也可以使用For循环结构来初始化数组中的控件,如下所示:For i = 0 To 10Set myButton(i) = Controls.Add("mandButton", "Button" & i)myButton(i).Top = i * 25Next i上述代码使用For循环在窗体上添加了11个按钮,并将它们的Top 属性依次设置为0、25、50、75……。
2、控件数组的处理方法通过使用控件数组,可以对具有相同事件处理程序的一组控件进行集成处理。
比如,你可以使用For循环结构为这些控件注册事件,代码如下:For i = 0 To 10Set myButton(i) = Controls.Add("mandButton", "Button" & i)myButton(i).Top = i * 25AddHandler myButton(i).Click, AddressOf Buttons_ClickNext iPrivate Sub Buttons_Click()MsgBox "Clicked"End Sub这里,我们将11个按钮的Click事件都绑定到Buttons_Click事件处理程序,当任何一个按钮被单击时,都会产生一个被处理的事件。
VB编程中网格控件的选用及使用在VB编程中,网格控件(Grid Control)是一种非常常见的控件。
它可以在程序界面中方便地展示和编辑表格数据,实现数据的快速查找、排序和过滤等功能。
本文将介绍VB编程中网格控件的选用及使用。
一、网格控件的选用在VB编程中,常见的网格控件包括MSFlexGrid、VSFlexGrid、True DBGrid等。
下面将逐一对它们进行介绍。
1.1 MSFlexGridMSFlexGrid是VB 6.0自带的网格控件,它的优点在于易于使用和轻量级。
MSFlexGrid可以显示文本、数值、日期、图像等类型的数据,并支持排序、过滤等基本操作,可以满足大部分数据展示的需求。
MSFlexGrid的缺点在于功能相对较为简单,不能进行复杂的数据操作和自定义样式的渲染。
1.2 VSFlexGridVSFlexGrid是由ComponentOne公司开发的一个强大的网格控件,它的优点在于功能非常丰富,支持多种数据格式和数据操作,可以进行自定义样式的渲染,可以满足更复杂的数据展示需求。
VSFlexGrid的缺点在于相对较为复杂和庞大,同时需要购买设置许可证。
1.3 True DBGridTrue DBGrid是由ComponentOne公司开发的一个类似于VSFlexGrid的网格控件,它的优点在于功能非常强大,支持多种数据格式和数据操作,支持复杂的分组和联合查询,可以进行自定义样式的渲染,同时支持数据绑定和数据关系的处理,是一个集成性较强的网格控件。
True DBGrid的缺点在于更为复杂和庞大,需要购买设置许可证,同时也不如VSFlexGrid得到广泛的支持和使用。
二、网格控件的使用在VB编程中,网格控件的使用相对简单,主要分为以下几个方面。
2.1 网格控件的引用网格控件需要在程序中进行引用后才能使用,通常的方法是使用“工具箱”中的“组件”进行引用。
以MSFlexGrid为例,在程序中引用MSFlexGrid的代码如下:Private WithEvents FlexGrid1 As MSFlexGrid这样就可以在程序中使用MSFlexGrid了。
VB常用控件的属性及功能Visual Basic (VB)是一个常用的编程语言,用于开发Windows应用程序。
在VB中,有许多常用的控件,每个控件都有一些常见的属性和功能。
下面是一些常用控件的属性和功能的概览:2. TextBox(文本框)控件:- Text属性:设置或获取文本框的文本内容。
- Multiline属性:设置或获取文本框是否为多行文本框。
- PasswordChar属性:设置或获取用于掩盖密码的字符。
- ReadOnly属性:设置或获取文本框是否为只读。
- KeyPress事件:在用户按下键盘键时触发的事件。
- TextChanged事件:当文本框的文本内容改变时触发的事件。
3. Button(按钮)控件:- Text属性:设置或获取按钮显示的文本。
- BackColor属性:设置或获取按钮的背景色。
- Enabled属性:设置或获取按钮是否启用。
- Click事件:在用户单击按钮时触发的事件。
- MouseHover事件:当鼠标悬停在按钮上方时触发的事件。
- Items属性:获取或添加组合框中的列表项。
- SelectedIndex属性:获取或设置组合框中选定项的索引。
- DropDownStyle属性:设置或获取组合框的下拉列表样式。
- SelectedIndexChanged事件:当组合框的选中项改变时触发的事件。
- DropDown事件:当组合框展开下拉列表时触发的事件。
5. CheckBox(复选框)控件:- Checked属性:获取或设置复选框的选中状态。
- Text属性:设置或获取复选框显示的文本。
- CheckedChanged事件:当复选框的选中状态改变时触发的事件。
6. RadioButton(单选按钮)控件:- Checked属性:获取或设置单选按钮的选中状态。
- GroupName属性:指定单选按钮所属的组名。
- AutoCheck属性:指定单选按钮是否自动变为选中状态。
VB常用控件的属性及功能
(一)TextBox
TextBox是最简单的一种控件,可以接收用户输入。
它支持的属性有:
1、Text:表示TextBox内容的属性,可以设置或获取它的文本值;
2、MaxLength:表示TextBox的最大长度,可以限制用户最多能输入
的文本字符数;
3、BorderStyle:表示TextBox的边框样式;
4、ReadOnly:表示文本框是否是只读,只读时用户只能看而不能修改;
5、AutoPostBack:表示当文本框的内容发生变化,是否触发PostBack操作;
6、BackColor:表示TextBox的背景颜色;
7、ForeColor:表示TextBox字体的颜色;
8、TextMode:表示TextBox的显示模式,默认是“SingleLine”,
也可以设置为“Multline”及“Password”。
TextBox的主要功能是接收用户输入的文本信息。
它可以设置最大字
符数,以控制用户输入,也可以设置文本框是否只读,以消除输入型干扰,并且还可以设置文本框的显示模式,以控制文本框的可见性。
(二)Label
Label是一种用于显示文本的控件,它支持的属性有:
1、Text:表示Label内容的属性,可以设置或获取它的文本值;
2、BackColor:表示Label的背景颜色;
3、BorderStyle:表示Label的边框样式;
4、BorderColor:表示Label边框的颜色;
5、ForeColor:表示Label字体的颜色;
6、Visible:表示Label是否可见。
Label的功能是显示文本,通常它用于提示、警告或说明一些信息。
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分别表示移动目的位置的坐标和大小。
vbnet菜单控件用法是一种流行的编程语言,用于开发Windows桌面应用程序。
菜单控件是应用程序中常用的控件之一,用于创建各种类型的菜单,如标准菜单、工具栏菜单和弹出菜单等。
在本篇文章中,我们将介绍菜单控件的用法。
一、菜单控件概述提供了多种菜单控件,包括MenuStrip、MenuBar、ToolStripMenuItem等。
这些控件可以用来创建应用程序的主菜单、子菜单和快捷菜单等。
通过使用菜单控件,开发者可以方便地管理应用程序中的各种功能和选项。
二、菜单控件的创建和使用1.创建菜单控件:在中,可以使用工具箱(Toolbox)中的菜单控件来创建菜单。
可以通过将控件拖放到窗体上,并为其添加控件文本和事件处理程序来创建菜单。
2.添加菜单项:可以使用MenuStrip控件的MenuItems属性来添加菜单项。
可以为每个菜单项设置文本、图标和快捷键等属性。
3.添加子菜单:可以使用MenuStrip控件的DropDownItems属性来添加子菜单。
子菜单可以是另一个MenuStrip控件或者MenuBar控件。
4.事件处理:当用户单击菜单项或执行菜单操作时,会触发相应的事件。
可以通过为菜单控件添加事件处理程序来响应这些事件,执行相应的操作。
三、示例代码下面是一个简单的应用程序,演示了如何使用菜单控件:```vbnetPublicClassForm1PrivateSubForm1_Load(senderAsObject,eAsEventArgs)HandlesM yBase.Load'创建菜单控件DimmenuBarAsMenuBar=NewMenuBar()Me.Controls.Add(menuBar)'添加标准菜单项DimfileMenuAsNewMenuStrip()menuBar.MenuItems.Add()fileMenu.Text="文件"fileMenu.AutoSize=AutoSizeMode.TruefileMenu.Items.Add("新建")fileMenu.Items.Add("打开")fileMenu.Items.Add("保存")fileMenu.Items.Add("退出")'添加子菜单DimfileSubmenuAsNewMenuStrip()fileMenu.Items.Add("编辑",fileSubmenu)fileSubmenu.Text="编辑"fileSubmenu.AutoSize=AutoSizeMode.TruefileSubmenu.Items.Add("剪切")fileSubmenu.Items.Add("复制")fileSubmenu.Items.Add("粘贴")'绑定事件处理程序AddHandlermenuBar.MouseDown,AddressOfMenuBar_MouseDownEndSubPrivateSubMenuBar_MouseDown(senderAsObject,eAsMouseEventA rgs)'处理菜单事件DimmenuItemAsToolStripMenuItem=CType(sender,ToolStripMenu Item)SelectCasemenuItem.TextCase"新建"'执行新建操作...Case"打开"'执行打开操作...Case"保存"'执行保存操作...Case"退出"'退出应用程序...Case"编辑剪切"'执行剪切操作...Case"编辑粘贴"'执行粘贴操作...EndSelectEndSubEndClass```以上代码创建了一个简单的窗体应用程序,包含一个MenuBar控件和多个菜单项。
VB中Timer控件的用法1. 什么是Timer控件?Timer控件是Visual Basic(VB)中的一种控件,用于在程序中创建定时器。
定时器是一种用于在特定时间间隔内执行某些操作的工具。
Timer控件可用于执行重复性的任务,如更新UI、执行后台操作等。
2. Timer控件的属性和方法2.1 属性•Enabled:指示Timer控件是否启用。
当Enabled属性设置为True时,定时器开始计时;当设置为False时,定时器停止计时。
•Interval:指定定时器的时间间隔,以毫秒为单位。
例如,设置Interval 为1000表示定时器每隔1秒触发一次。
•Tag:用于存储和检索与Timer控件相关的自定义数据。
2.2 方法•Start():启动定时器,使其开始计时。
•Stop():停止定时器,使其停止计时。
•ToString():将Timer控件的当前状态转换为字符串。
3. Timer控件的事件3.1 Tick事件Tick事件是Timer控件的主要事件,每当定时器的时间间隔过去后,Tick事件就会触发一次。
可以通过在Tick事件处理程序中编写代码来执行所需的操作。
例如,更新UI、执行后台操作等。
下面是一个示例代码,演示了如何在Tick事件中更新Label控件的文本:Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.Event Args) Handles Timer1.TickLabel1.Text = DateTime.Now.ToString("HH:mm:ss")End Sub在上述代码中,Timer1是一个已经放置在窗体上的Timer控件,Label1是一个已经放置在窗体上的Label控件。
每当Timer1的时间间隔过去后,Tick事件就会触发一次,更新Label1的文本为当前的时间。
vbnet mshflexgrid控件使用在使用MSHFlexGrid控件之前,首先需要安装相应的组件。
然后按照以下步骤进行操作:1. 在窗体设计时,将MSHFlexGrid控件拖放到窗体上。
2. 在代码中添加对MSHFlexGrid控件的引用:```Imports AxMSHFlexGridLibImports MSHFlexGridLib```3. 在窗体的Load事件中初始化MSHFlexGrid控件:```Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.LoadMSHFlexGrid1.Rows = 5MSHFlexGrid1.Cols = 3End Sub```4. 可以通过设置MSHFlexGrid控件的属性来自定义外观和行为,例如:```MSHFlexGrid1.BorderStyle =MSHFlexGridLib.BorderStyleSettings.flexBSNoneMSHFlexGrid1.BackColor = Color.WhiteMSHFlexGrid1.ForeColor = Color.BlackMSHFlexGrid1.FixedCols = 1MSHFlexGrid1.FixedRows = 1```5. 可以使用代码添加数据到MSHFlexGrid控件的单元格中:```MSHFlexGrid1.TextMatrix(0, 0) = "Name"MSHFlexGrid1.TextMatrix(0, 1) = "Age"MSHFlexGrid1.TextMatrix(0, 2) = "Gender"MSHFlexGrid1.TextMatrix(1, 0) = "John"MSHFlexGrid1.TextMatrix(1, 1) = "25"MSHFlexGrid1.TextMatrix(1, 2) = "Male"MSHFlexGrid1.TextMatrix(2, 0) = "Jane"MSHFlexGrid1.TextMatrix(2, 1) = "23"MSHFlexGrid1.TextMatrix(2, 2) = "Female"```6. 可以通过代码修改MSHFlexGrid控件的单元格样式:```MSHFlexGrid1.CellAlignment = FlexCellAlignmentSettings.flexAlignCenterCenterMSHFlexGrid1.CellFontName = "Arial"MSHFlexGrid1.CellFontSize = 10MSHFlexGrid1.CellFontBold = True```7. 可以使用事件处理程序来响应MSHFlexGrid控件的事件,例如:```Private Sub MSHFlexGrid1_ClickEvent(sender As Object, e As EventArgs) Handles MSHFlexGrid1.ClickEventDim row As Integer = MSHFlexGrid1.RowDim col As Integer = MSHFlexGrid1.ColMessageBox.Show("You clicked on cell (" & row & ", " & col& ").")End Sub```以上是使用中的MSHFlexGrid控件的基本步骤和一些常见的操作示例。
VB控件
VB作为可视化的编程,提供了很多控件。
控件工具箱在VB程序界面的左边,如下图所示。
一、按钮控件(command),按钮控件主要用来执行某一功能。
每一个控件都有一个名称,在程序里面,我们要通过控件的名称引用该控件。
如下图所示,我们在窗体画了一个按钮控件
选中该控件,在属性面板“名称”一行可以看到该按钮控件的名称是“Command1”
按钮控件有很多属性,其中Caption属性的值控制着按钮显示的文字,我们想要改变一个控件的属性的值有两种方法,第一种方法是在属性面板修改,如下图所示:
我们把按钮控件的Caption属性的值改成了“开始”,那么按钮上显示的文字就改为了“开始”,如下图所示:
我们还可以通过写代码的方式改变控件属性的值,假如要把上图按钮上的文字改为“暂停”,除了可以在属性面板修改之外,还可以通过以下代码进行修改:
Command1.Caption = "暂停"
代码的格式为:控件名称.控件属性=值
例子:
问题描述:窗体上有一个按钮,初始时按钮文字显示“开始”。
当按钮上的文字为“开始”时,点击按钮,按钮文字改变为“暂停”。
当按钮上的文字为“暂停”时,点击按钮时改为“开始”。
界面如下:
代码如下:
二、标签控件(label),主要用于显示文本,通常用于显示提示性的文字,
控制标签控件显示文本的是Caption属性的值,我们可以通过属性面板改变该属性的值,也可以通过以下代码改变:
Label1.Caption = "Hello World!"。
控制标签控件字体和字号的属性是font,控制其文字颜色的是forecolor属性的值。
例子:利用label控件制作一个欢迎界面,界面如下:
界面有两个控件,一个按钮,一个label,label的名称为Label1,选中Label1控件,在属性面板将其Caption属性改为“欢迎标语”,ForeColor属性设置为红色,如上图所示。
再选择Font属性,设置如下:
代码界面如下:
三、文本框控件(text),主要用于输入,输入的内容保存在Text属性里面,
我们可以在属性面板改变文本框控件的的Text属性,也可以用代码来改变。
我们还可以通过代码获取文本框控件的输入的内容。
str = Text1.Text
以上代码把在文本框Text1输入的内容保存到变量str里面。
例子:
界面如下:
界面由两个label控件,一个text控件和一个按钮控件组成。
Text控件的名称为Text1,选中该控件,将其Text属性改为空白,如下图所示。
双击按钮控件,代码如下图:
四、Image控件,主要用于加载和显示图片。
如上图,在界面上画一个Image控件,让其Picture属性指向一张图片,Image控件就会加载和显示这张图片。
五、timer控件,间隔一段时间(间隔时间以毫秒计算)就会执行一次写在timer控件里面的代码。
timer控件的属性面板如下:
timer控件有两个很重要的属性,一个是Inerval属性,控制着timer 控件多长时间执行一次timer控件的代码,上图是每隔1000毫秒(也就是1秒)执行一次timer控件的代码。
Enabled属性控制timer的有效性,其值为True则timer控件每隔一段时间执行代码,为false则不执行代码。
例子:让label控件每隔一秒增加1。
界面如下:
上图有两个控件,分别是一个标签控件(Label1)和一个timer控件(Timer1)。
Label1的caption属性为“0”,Timer1的Interval属性为1000。
双击Timer1控件,写代码如下:
Timer1_Timer里面的代码Label1.Caption = Label1.Caption + 1每隔1000毫秒执行一次,所以Label1上的数字每隔一秒增加1。
练习1:刷牙测试你的金钱观。
(程序保存到一个命名为brushing的文件夹)
做一个娱乐性的测试程序,选项和对应的选项显示的结果如下:
A.慢慢仔细地刷。
由你的表现看,你对金钱略有神经质,但一分一毫不马虎。
有时被认为是吝啬。
B.疾速刷两三下完毕。
由你的表现看,你不是挥霍无度,也不是一毛不拔,属于普通一般型。
C.一边让水龙头开着一边刷牙。
由你的表现看,你少有钱的观念,有时大把挥难,有时身不留一文。
D.只嗽嗽口就完毕。
由你的表现看,你好大喜功又浮华,手里有多少钱就用多少钱,且会前债未清又借贷。
假如用户输入了其它选择,提示“没有这个选项!”
程序运行结果如下图:
练习2:做一个模拟网上手机销售的程序。
用户可以点击按钮“+”增加购买数量,点击按钮“-”减少购买数量,用户购买的数量不能超过库存量,也不能少于1台,同时显示要支付的总价。
(程序保存到一个命名为phone的文件夹)
练习3:做一个简单的计时器,如下图,只有秒和分钟的计时。
(程序保存到一个命名为timer的文件夹)
练习4:做一个倒计时程序。
文本框是需要倒计的秒数,当倒计时为0是提示“时间到”。
(程序保存到一个命名为countdown的文件夹)。