1、项目3 窗体及基本控件的使用,任务列表: 1、窗体绘制和外观设计 2、窗体事件处理 3、用户登录界面设计 4、用户注册界面设计 5、列表管理 6、页面时钟设计 7、动态改变窗体透明度,一、项目教学目标,1、掌握窗体绘制和外观设计的方法 2、掌握窗体的基本事件 3、掌握窗体的常用属性和方法 4、掌握按钮、标签、文本框控件的使用 5、掌握单选按钮、复选框、列表框、组合框的使用 6、掌握计时器控件的使用 7、掌握水平和垂直滚动条的使用,二、项目知识准备窗体,所谓窗体其实就是Windows的窗口,C#中的Windows应用程序是以窗体(Form)为基础的。1常用属性(1)Name属性:用来获取或设置窗
2、体的名称。(2)WindowState属性:用来获取或设置窗体的窗口状态。(3)StartPosition属性:用来获取或设置运行时窗体的起始位置。(4)Text属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字。,(5)Width属性:用来获取或设置窗体的宽度。 (6)Heigth属性:用来获取或设置窗体的高度。 (7)Left属性:用来获取或设置窗体的左边缘的 x 坐标(以像素为单位)。 (8)Top属性:用来获取或设置窗体的上边缘的 y 坐标(以像素为单位)。 (9)ControlBox属性:用来获取或设置一个值,该值指示在该窗体的标题栏中是否显示控制框。 (10)Ma
3、ximumBox属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最大化按钮。,二、项目知识准备窗体,(11)MinimizeBox属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最小化按钮。 (12)AcceptButton属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当用户按 ENTER 键时就相当于单击了窗体上的该按钮。 (13)CancelButton属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当用户按ESC键时就相当于单击了窗体上的该按钮。 (14)Modal属性:该属性用来设置窗体是否为有模式显示窗体。 (15)ActiveControl
4、属性:用来获取或设置容器控件中的活动控件。 (16)ActiveMdiChild属性:用来获取多文档界面(MDI)的当前活动子窗口。,二、项目知识准备窗体,(17)AutoScroll属性:用来获取或设置一个值,该值指示窗体是否实现自动滚动。 (18)BackColor属性:用来获取或设置窗体的背景色。 (19)BackgroundImage属性:用来获取或设置窗体的背景图像。 (20)Enabled属性:用来获取或设置一个值,该值指示控件是否可以对用户交互作出响应。 (21)Font属性:用来获取或设置控件显示的文本的字体。 (22)ForeColor属性:用来获取或设置控件的前景色。 (2
5、3)IsMdiChild属性:获取一个值,该值指示该窗体是否为多文档界面 (MDI) 子窗体。,二、项目知识准备窗体,(24)IsMdiContainer属性:获取或设置一个值,该值指示窗体是否为多文档界面 (MDI) 中的子窗体的容器。 (25)KeyPreview属性:该属性用来获取或设置一个值,该值指示在将按键事件传递到具有焦点的控件前,窗体是否将接收该事件。 (26)MdiChildren属性:数组属性。 (27)MdiParent属性:该属性用来获取或设置此窗体的当前多文档界面 (MDI) 父窗体。 (28)ShowInTaskbar属性:该属性用来获取或设置一个值,该值指示是否在
6、Windows 任务栏中显示窗体。 (29)Visible属性:该属性获取或设置一个值,该值指示是否显示该窗体或控件。 (30)Capture属性:如果该属性值为true,则鼠标就会被限定只由此控件响应,不管鼠标是否在此控件的范围内。,二、项目知识准备窗体,2、常用方法 (1)Show方法 该方法的作用是让窗体显示出来,其调用格式为: 窗体名.Show(); (2)Hide方法 该方法的作用是把窗体隐藏出来,其调用格式为: 窗体名.Hide(); (3)Refresh方法 该方法的作用是刷新并重画窗体,其调用格式为: 窗体名.Refresh();,二、项目知识准备窗体,2、常用方法 (4)Ac
7、tivate方法 该方法的作用是激活窗体并给予它焦点。其调用格式为: 窗体名.Activate(); (5)Close方法 该方法的作用是关闭窗体。其调用格式为: 窗体名.Close(); (6)ShowDialog方法 该方法的作用是将窗体显示为模式对话框。其调用格式为: 窗体名.ShowDialog();,二、项目知识准备窗体,3、常用事件 (1)Load事件:该事件在窗体加载到内存时发生,即在第一次显示窗体前发生。 (2)Activated事件:该事件在窗体激活时发生。 (3)Deactivate事件:该事件在窗体失去焦点成为不活动窗体时发生。 (4)Resize事件:该事件在改变窗体大
8、小时发生。 (5)Paint事件:该事件在重绘窗体时发生。 (6)Click事件:该事件在用户单击窗体时发生。 (7)DoubleClick事件:该事件在用户双击窗体时发生。 (8)Closed事件:该事件在关闭窗体时发生。,二、项目知识准备窗体,【例3-1】 编写一个Windows应用程序,程序刚运行时显示出所图3-1所示的【欢迎】对话框;若用户单击【确定】按钮后将出现如图3-2所示的主界面;若用户单击【改变标题】按钮,将把窗体的标题改变为【这里是Visual C#实习基地】,如图3-3所示;若用户单击【随机移动】按钮,将把窗体在屏幕上随机移动;若用户单击【退出】按钮将会显示如图3-4的再见
9、对话框,用户单击【确定】按钮将退出应用程序。,二、项目知识准备窗体,图3-1 【欢迎】对话框,图3-2 程序运行界面一,图3-3 程序运行界面二,图3-4 【再见】对话框,二、项目知识准备 文本类控件的使用,1Label控件 Label控件又称标签控件,它在工具箱中的图标为“ ”。 标签控件的常用属性如下。(1)Text属性 该属性用来设置或返回标签控件中显示的文本信息。(2)AutoSize属性 该属性用来获取或设置一个值,该值指示是否自动调整控件的大小以完整显示其内容。,(3)Anchor属性 Anchor的意思为“锚”,该属性是用来确定此控件与其容器控件的固定关系的。 (4)BackCo
10、lor属性 该属性用来获取或设置控件的背景色。,二、项目知识准备 文本类控件的使用,(5)BorderStyle属性 该属性用来设置或返回边框。 (6)TabIndex属性 该属性用来设置或返回对象的Tab键顺序。 (7)Enabled属性 该属性用来设置或返回控件的状态。,二、项目知识准备 文本类控件的使用,2、 TextBox控件 (1)TextBox控件的常用属性 Text属性Text属性是文本框最重要的属性,因为要显示的文本就包含在Text属性中。 MaxLength属性该属性用来设置文本框允许输入字符的最大长度 MultiLine属性该属性用来设置文本框中的文本是否可以输入多行并以多
11、行显示。,二、项目知识准备 文本类控件的使用, HideSelection属性:该属性用来决定当焦点离开文本框后,选中的文本是否还以选中的方式显示 。 ReadOnly属性:该属性用来获取或设置一个值,该值指示文本框中的文本是否为只读。 PasswordChar属性该属性是一个字符串类型,允许设置一个字符,运行程序时,将输入到Text的内容全部显示为该属性值,从而起到保密作用,通常用来输入口令或密码。 ScrollBars属性 该属性用来设置滚动条模式 SelectionLength属性 该属性用来获取或设置文本框中选定的字符数。,二、项目知识准备 文本类控件的使用, SelectionSta
12、rt属性该属性用来获取或设置文本框中选定的文本起始点。 SelectedText属性该属性用来获取或设置一个字符串,该字符串指示控件中当前选定的文本。 Lines:该属性是一个数组属性,用来获取或设置文本框控件中的文本行。 Modified:该属性用来获取或设置一个值,该值指示自创建文本框控件或上次设置该控件的内容后,用户是否修改了该控件的内容。 TextLength属性:该属性用来获取控件中文本的长度。 WordWrap:该属性用来指示多行文本框控件在输入的字符超过一行宽度时是否自动换行到下一行的开始,二、项目知识准备 文本类控件的使用,(2)TextBox控件的常用方法 AppendTex
13、t方法该方法的作用是把一个字符串添加到文件框中文本的后面,调用的一般格式如下:文本框对象.AppendText(str) Clear方法该方法从文本框控件中清除所有文本。调用的一般格式如下:文本框对象.Clear() Focus方法该方法的作用是为文本框设置焦点。如果焦点设置成功,值为 true,否则为 false。调用的一般格式如下:文本框对象.Focus(),二、项目知识准备 文本类控件的使用, Copy方法该方法将文本框中的当前选定内容复制到剪贴板上。调用的一般格式如下:文本框对象.Copy() Cut方法该方法将文本框中的当前选定内容移动到剪贴板上。调用的一般格式如下:文本框对象.Cu
14、t() Paste方法该方法是用剪贴板的内容替换文本框中的当前选定内容。调用的一般格式如下:文本框对象.Paste(),二、项目知识准备 文本类控件的使用, SelectAll方法该方法用来选定文本框中的所有文本。调用的一般格式如下:文本框对象.SelectAll() (3)TextBox控件的常用事件 GotFocus事件:该事件在文本框接收焦点时发生。 LostFocus事件:该事件在文本框失去焦点时发生。 TextChanged事件:该事件在Text 属性值更改时发生。,二、项目知识准备 文本类控件的使用,【例3-2】 编写一个对文本框中选中的字符倒序存放的程序。程序的设计界面如图3-6
15、所示,程序的运行界面如图3-7所示。程序运行时在上面的文本框中输入文本,然后在【开始位置】后的文本框中输入要选定的字符的起始位置,在【长度】后面的文本框中输入要选中字符的长度。输入完毕后按【选择】按钮将在上面的文本框中选定指定的字符串,然后单击【倒序】按钮将把选中的字符串反序存放并显示在下面的文本框中。,二、项目知识准备 文本类控件的使用,图3-6 程序设计界面,图3-7 程序运行界面,2、RichTextBox控件 (1)RichTextBox控件的常用属性 RightMargin属性:用来设置或获取右侧空白的大小,单位是像素。如希望右侧空白为50像素,可使用如下语句: RichTextBo
16、x1. RightMargin= RichTextBox1.Width-50; Rtf属性:该属性用来获取或设置 RichTextBox 控件中的文本,包括所有 RTF 格式代码。 SelectedRtf属性:该属性用来获取或设置控件中当前选定的 RTF 格式的格式文本。 SelectionColor属性:该属性用来获取或设置当前选定文本或插入点处的文本颜色。,二、项目知识准备 文本类控件的使用, SelectionFont属性:该属性用来获取或设置当前选定文本或插入点处的字体。 (2)常用方法 Redo方法 该方法用来重做上次被撤消的操作。调用的一般格式如下:RichTextBox对象.Re
17、do() Find方法该方法用来从RichTextBox控件中查找指定的字符串。经常使用的调用格式如下: 格式1:RichTextBox对象.Find(str) 格式2:RichTextBox对象.Find(str, RichTextBoxFinds) 格式3:RichTextBox对象.Find(str, start,RichTextBoxFinds),二、项目知识准备 文本类控件的使用, SaveFile方法 格式1:RichTextBox对象名.SaveFile(文件名); 格式2:RichTextBox对象名.SaveFile(文件名,文件类型); 格式3:RichTextBox对象名
18、.SaveFile(数据流,数据流类型); LoadFile方法 格式1:RichTextBox对象名.LoadFile(文件名); 格式2:RichTextBox对象名.LoadFile(文件名,文件类型); 格式3:RichTextBox对象名.LoadFile(数据流,数据流类型);,二、项目知识准备 文本类控件的使用,【例3-3】 编写一个能够对RFT文件进行查找替换的程序,程序的设计界面如图3-8所示。程序运行时,在【文件名】后的文本框中输入要打开的RTF文件名,然后按【打开】按钮,将把指定的RTF文件装载到中间的RichTextBox框中,如果RichTextBox框中的内容发生了
19、变化,按【保存】按钮可以将改变的内容保存到文件中去。在查找内容后面的文本框中输入查找文本,然后按【查找下一个】按钮,将在RichTextBox框中按顺序依次查找该文本,某次查找的结果如图3-9所示。在【替换为】后面的文本框中输入要替换的文本,然后按【全部替换】按钮,则将RichTextBox框中所有的查找文本替换为替换文本。,二、项目知识准备 文本类控件的使用,图3-8 程序设计界面,图3-9 程序运行界面,3NumericUpDown控件 (1)NumericUpDown控件的常用属性 DecimalPlaces:获取或设置该控件中显示的小数位数。 Hexadecimal:获取或设置一个值,
20、该值指示该控件是否以十六进制格式显示所包含的值。 Increment:获取或设置单击向上或向下按钮时,该控件递增或递减的值。 Maximum:获取或设置该控件的最大值。 Minimum:获取或设置该控件的最小值。 Value:获取或设置该控件的当前值。,二、项目知识准备 文本类控件的使用,(2)NumericUpDown控件的常用事件与TextBox控件一样,它响应的主要事件有:ValueChanged、GotFocus、LostFocus等。,二、项目知识准备 文本类控件的使用,1Button控件 (1)Button控件的常用属性 DialogResult属性:当使用ShowDialog方法
21、显示窗体时,可以使用该属性设置当用户按了该按钮后,ShowDialog方法的返回值。值有:OK、Cancel、Abort、Retry、Ignore、Yes、No等。 Image属性:该属性用来设置显示在按钮上的图像。 FlatStyle属性:该属性用来设置按钮的外观。,二、项目知识准备 按钮类控件的使用,(2)Button控件的常用事件 Click事件 当用户用鼠标左键单击按钮控件时,将发生该事件。 MouseDown事件 当用户在按钮控件上按下鼠标按钮时,将发生该事件。 MouseUp事件 当用户在按钮控件上释放鼠标按钮时,将发生该事件。,二、项目知识准备 按钮类控件的使用,2. Group
22、Box控件GroupBox控件又称为分组框,它在工具箱中的图标是“”。该控件常用于为其它控件提供可识别的分组,其典型的用法之一就是给RadioButton控件分组。设计时,向GroupBox控件中添加控件的方法有两种:一是直接在分组框中绘制控件;二是把某一个已存在的控件复制到剪切板上,然后选中分组框,再执行粘贴操作即可。,二、项目知识准备 按钮类控件的使用,3RadioButton控件 (1)RadioButton控件的常用属性 Checked属性该属性用来设置或返回单选按钮是否被选中。 AutoCheck属性如果AutoCheck属性被设置为true(默认),那么当选择该单选按钮时,将自动清
23、除该组中所有其他单选按钮。 Appearance属性该属性用来获取或设置单选按钮控件的外观。,二、项目知识准备 按钮类控件的使用, Text属性 该属性用来设置或返回单选按钮控件内显示的文本 。 (2)RadioButton控件的常用事件 Click事件当单击单选按钮时,将把单选按钮的Checked属性值设置为true,同时发生Click事件。 CheckedChanged事件当Checked属性值更改时,将触发CheckedChanged事件。,二、项目知识准备 按钮类控件的使用,4CheckBox控件 (1)CheckBox控件的常用属性 TextAlign属性该属性用来设置控件中文字的对
24、齐方式。 ThreeState属性该属性用来返回或设置复选框是否能表示三种状态. Checked属性该属性值用来设置或返回复选框是否被选中. CheckState属性该属性用来设置或返回复选框的状态。,二、项目知识准备 按钮类控件的使用,(2)CheckBox控件的常用事件CheckBox控件的常用事件有Click和CheckedChanged等,其含义及触发时机与单选按钮完成一致。,二、项目知识准备 按钮类控件的使用,【例3-4】 编写一个设置文字格式的应用程序。程序的设计界面如图3-10所示,程序的运行界面如图3-11所示。程序运行时单击相应的单选按钮或复选框将对文本框中的文本格式进行相应
25、的设置。,二、项目知识准备 按钮类控件的使用,图3-10 程序设计界面,图3-11 程序运行界面,1ListBox控件 (1)ListBox控件的常用属性 Items属性:该属性用于存放列表框中的列表项,是一个集合。 MultiColumn属性:该属性用来获取或设置一个值,该值指示 ListBox 是否支持多列。 ColumnWidth属性:该属性用来获取或设置多列 ListBox 控件中列的宽度。 SelectionMode属性:该属性用来获取或设置在 ListBox 控件中选择列表项的方法。,二、项目知识准备 列表类控件的使用, SelectedIndex属性:该属性用来获取或设置 Lis
26、tBox 控件中当前选定项的从零开始的索引。 SelectedIndices。该属性用来获取一个集合,该集合包含 ListBox 控件中所有选定项的从零开始的索引。 SelectedItem属性:获取或设置 ListBox 中的当前选定项。 SelectedItems属性:获取ListBox控件中选定项的集合 . Sorted属性:获取或设置一个值,该值指示ListBox控件中的列表项是否按字母顺序排序。 Text属性:该属性用来获取或搜索ListBox控件中当前选定项的文本。 ItemsCount属性:该属性用来返回列表项的数目。,二、项目知识准备 列表类控件的使用,(2) ListBox控
27、件的常用方法 FindString方法该方法用来查找列表项中以指定字符串开始的第一个项,有两种调用格式。 格式1:ListBox对象.FindString(s); 格式2:ListBox对象.FindString(s,n); SetSelected方法该方法用来选中某一项或取消对某一项的选择,调用格式及功能如下。 格式:ListBox对象.SetSelected(n,l);,二、项目知识准备 列表类控件的使用, Items.Add方法 该方法用来向列表框中增添一个列表项,调用格式及功能如下。 格式:ListBox对象.Items.Add(s); Items.Insert方法 该方法用来在列表框
28、中指定位置插入一个列表项,调用格式及功能如下。 格式:ListBox对象.Items.Insert(n,s); Items.Remove方法 该方法用来从列表框中删除一个列表项,调用格式及功能如下。 格式:ListBox对象.Items.Remove(k);,二、项目知识准备 列表类控件的使用, Items.Clear方法 该方法用来用来清除列表框中的所有项。其调用格式如下:ListBox对象.Items.Clear(); BeginUpdate方法和EndUpdate方法。 这两个方法均无参数,调用格式分别如下: ListBox对象.BeginUpdate();ListBox对象.EndUp
29、date(); (3)ListBox控件的常用事件列表框的常用事件有Click和SelectedIndexChanged,SelectedIndexChanged事件在列表框中改变选中项时发生。,二、项目知识准备 列表类控件的使用,【例3-5】列表框示例。编写一个列表框应用程序,程序的设计界面如图3-12所示,程序的运行界面如图3-13所示。程序运行时单击【多列】单选按钮将使列表框显示多列,单击【单列】单选按钮将使列表框以一列的形式显示。在查找后面的文本框中输入一个字符串,然后单击【精确查找】按钮,如果列表项中有与输入的字符串精确匹配的项,则找到并选中该项,如果没有则给出提示信息。单击【删除】
30、按钮将删除选中的选项。在【添加项】后面的文本项中输入一个字符串,然后单击【添加】按钮将把该字符串作为列表项添加到列表框中。单击【清除】按钮将清除列表框中的所有列表项。,二、项目知识准备 列表类控件的使用,图3-12 程序设计界面,图3-13 程序运行界面,2ComboBox控件,图3-14 组合框示例,图3-15 复选列表框示例,二、项目知识准备 列表类控件的使用,3CheckedListBox控件除具有列表框的全部属性外,它还具有以下属性。 (1)CheckOnClick 属性:获取或设置一个值,该值指示当某项被选定时是否应切换左侧的复选框。 (2)CheckedItems 属性:该属性是复
31、选列表框中选中项的集合. (3)CheckedIndices 属性:该属性代表选中项(处于选中状态或中间状态的那些项)索引的集合。,二、项目知识准备 列表类控件的使用,1定时器的常用属性 (1)Enabled属性:该属性用来设置定时器是否正在运行。(2)Interval属性:该属性用来设置定时器两次Tick事件发生的时间间隔,以毫秒为单位。 2定时器的常用方法(1)Start方法该方法用来启动定时器。调用的一般格式如下:Timer控件名.start(); (2)Stop方法该方法用来停止定时器。调用的一般格式如下:Timer控件名.stop(); 3定时器的常用事件定义器控件响应的事件只有Ti
32、ck,每隔Interval时间后将触发一次该事件。,二、项目知识准备 Timer控件的使用,【例3-6】 编写一个显示当前时间的应用程序,要求每隔0.5秒刷新一次时间。程序的设计界面如图3-16所示,程序的运行界面如图3-17所示。,二、项目知识准备 Timer控件的使用,图3-16 程序设计界面,图3-17 程序运行界面,1ProgressBar控件 (1)ProgressBar控件的常用属性 Maximum属性:该属性用来设置或返回进度条能够显示的最大值,默认值为100。 Minimum属性:该属性用来设置或返回进度条能够显示的最小值,默认值为0。 Value属性:该属性用来设置或返回进度
33、条的当前位置。 Step属性:该属性用来设置或返回一个值,该值用来决定每次调用PerformStep方法时,Value属性增加的幅度。,二、项目知识准备 ProgressBar控件和TrackBar控件的使用,(2)ProgressBar控件的常用方法 Increment方法该方法用来按指定的数量增加进度条的值,调用的一般格式如下:progressBar对象.Increment(n); PerformStep方法该方法用来按step属性值来增加进度条的Value属性值,调用的一般格式如下:progressBar对象.PerformStep(); (3)ProgressBar控件的常用事件该控件
34、也能响应很多事件,但一般很少使用。,二、项目知识准备 ProgressBar控件和TrackBar控件的使用,2TrackBar控件 (1)TrackBar控件的常用属性 Maximum属性:该属性用来获取或设置TrackBar控件可表示的范围上限,即最大值。 Minimum属性:该属性用来获取或设置TrackBar控件可表示的范围下限,即最小值 Orientation属性:该属性获取或设置一个值,该值指示跟踪条在水平方向还在垂直方向。 LargeChange属性:该属性用来获取或设置一个值,该值指示当滑块长距离移动时应为Value属性中加上或减去的值。,二、项目知识准备 ProgressBa
35、r控件和TrackBar控件的使用, SmallChange属性:该属性用来获取或设置当滑块短距离移动时对Value属性进行增减的值。 Value属性:该属性用来获取或设置滑块在跟踪条控件上的当前位置的值。 TickFrequency属性:该属性用来获取或设置一个值,该值指定控件上绘制的刻度之间的增量。 TickStyle属性:该属性用来获取或设置一个值,该值指示如何显示跟踪条上的刻度线。 (2)TrackBar控件的常用事件经常使用的TrackBar控件的事件是ValueChanged,该事件在TrackBar控件的Value属性改变时发生。,二、项目知识准备 ProgressBar控件和T
36、rackBar控件的使用,【例3-7】TextBox控件与TrackBar控件的互动。编写一个应用程序,程序的设计界面如图3-18所示,程序的运行界面如图3-19所示。程序运行时在TextBox控件中输入值时,TrackBar控件自动跳转到相应的位置,当用户改变了TrackBar控件的位置,文本框将自动显示出该位置的值。,二、项目知识准备 ProgressBar控件和TrackBar控件的使用,图3-18 程序设计界面,图3-19 程序运行界面,1滚动条控件的属性 (1)Minimum和Maximum属性:与TrackBar控件的同名属性基本相同。 (2)Value属性:该属性用于设置或返回滑
37、块在滚动条中所处的位置,其默认值为0。 (3)SmallChange和LargeChange属性:这两个属性主要用于调整滑块移动的距离。 2滚动条控件的事件 (1)Scroll事件:该事件在用户通过鼠标或键盘移动滑块后发生。(2)ValueChanged事件:该事件在滚动条控件的Value属性改变时发生。,二、项目知识准备 HScrollBar控件和VScrollBar控件的使用,三、项目实践,典型实例一:密码校检程序 【实例题目】:设计一个简易账号和密码的检验程序。程序的设计界面如图3-20所示,程序的运行界面如图3-21所示。对输入的账号和密码规定如下:(1)账号为不超过6位的数字,密码为
38、4位字符,在本题中,密码假定为“Pass”。(2)输入密码时,在屏幕上不显示输入的字符,而用“*”代替。(3)当输入不正确,如账号为非数字字符或密码不正确时,将在对话框中显示有关错误的提示信息,若用户在对话框中选择【重试】按钮,则清除原来输入的内容,将焦点移至原来输入的文本框中,重新输入;若用户选择【取消】按钮,则停止程序的运行。,图3-20 程序设计界面,图3-21 程序运行界面,三、项目实践,典型实例二:照片展示程序 【实例题目】:制作一个照片自动展示程序,程序启动后将循环显示照片,每张照片在屏幕上停留0.5秒。当用户单击照片时将显示一个提示框,询问用户是否停止展示,如果用户回答“是”将停
39、止展示,回答“否”将接着展示。程序的设计界面如图3-22所示,程序的运行界面如图3-23所示。,三、项目实践,图3-22 程序设计界面,图3-23 程序运行界面,三、项目实践,四、拓展训练,练习一:产品选择程序 【练习题目】:编写一个产品选择程序。程序的设计界面如图3-24所示,程序的运行界面如图3-25所示。程序刚运行时,在listBox1列表框中显示所有的产品列表,用户可以从中选择一个或多个产品。用户选择了产品后,按【】按钮将把选中的产品移动到listBox2列表框中。如果用户按【】按钮,则把所有的产品移到listBox2列表框中。选择时可能由于误操作选了不想要的产品,此时可在listBox2列表框中选中相应的产品名,然后按【】按钮把选中的产品再移到listBox1列表框中。如果用户不想选任何产品,可按【】按钮把所有选择的产品再移回到listBox1中。,图3-24 程序设计界面,图3-25 程序运行界面,四、拓展训练,练习二:可控速度的文本移动 【练习题目】:创建一个文字来回移动的程序,文字移动的速度由滚动条控制,程序的运行界面如图3-26所示。,图3-26 程序运行界面,四、拓展训练,