VB程序设计实验五
实验目的
? ?
掌握一维数组和二维数组的操作
学习跟数组相关的控件:列表框和组合框
复习
1. 列表框
列表框(ListBox)控件允许用户查看和选择列表中的多个元素。
表5-11 列表框的常用属性和事件
常用属性和事件 Items MultiColumn 描述 表示该控件中所有元素的集合(类似于数组,有下标的,从0开始) 布尔值。若为True,则该控件中的所有列表元素分在多个列表中显示,从而避免在显示区域中出现滚动条 被选中元素的索引。如果没有元素被选中,值为?1;如果用户选中了多个元素,SelectedIndex 常用属性 SelectedIndeces SelectedItem SelectedItems SelectedMode 常用事件 SelectedIndexChanged Click 这个属性只返回被选中的索引值之一。由于这个原因,如果有多个元素被选中,应该使用SelectedIndices属性 集合。其中包含了所有被选定元素的索引值 返回被选中元素的引用。如果有多个元素被选中,则返回索引值最小的那个元素 集合。返回所有被选定的元素的引用 确定可以选择的元素的数量,以及多个元素可以被选择的方式。 当用户选择的索引改变时发生的事件 单击
2. 组合列表框(ComboBox)整合了列表框和文本框的功能,以一个文本框控件(TextBox)
右边加上一个向下箭头的样式显示。有Simple(简单组合框)、DropDown(下拉组合框)和DropDownList(下拉列表框)。其中,Simple选项不显示下拉箭头,而是在控件的旁边显示一个滚动条;DropDown风格(默认值)在单击向下箭头时显示一个下拉列表,且在ComboBox中输入一个值;DropDownList显示一个下拉列表,但不允许用户在ComboBox中输入。
表5-13 组合列表框的常用属性和事件
常用属性和事件 DropDownStyle Items MaxDropDownItems SelectedIndex SelectedItem Sorted SelectedIndexChanged 常用事件 Click 单击 描述 确定ComboBox的类型,Simple、DropDown、DropDownList 该控件中的元素集合 确定下拉列表中可以显示的最大元素数量。如果元素的数量超过了该常用属性 值,则在组合列表框中出现滚动条 返回被选择元素的索引。如果没有元素被选中,则返回?1 返回被选择元素的引用 布尔值。表示列表中的元素是否排序 当被选择的索引发生变化时该事件发生 3. 列表框和组合框的其他属性、方法 (1) Items.Count属性:列表框或组合框中项目数量。最后一项的序号为Items.Count-1,该属性只能在程序中设置或引用。
(2) Text属性:被选定的选项的文本内容。该属性只能在程序中设置或引用。
注意:ListBox1.Items(ListBox1.SelectedIndex)等于ListBox1.Text。
(3) Items.Add方法
把一个选项加入列表框,格式:对象.Items.Add(选项);如:ListBox1.Items.Add(\周海涛\ (4) Insert方法
在指定位置插入一个项目。格式:对象.Items.Insert(序号, 添加项内容) (5)Items.Remove方法
从列表框中删除指定的项。格式:对象. Items.Remove (选项)。 例如:ListBox1.Items.Remove (\华成\(6)Items.RemoveAt方法
格式:对象.RemoveAt(Index)
从列表框中删除指定的项。Index表示被删除项目在列表框中的位置,从0开始。 例如:ListBox1.Items.RemoveAT(4) (7) Items.Clear方法 格式:对象.Items.Clear
用于清除列表框所有项目,例如:ListBox1.Items.Clear 4.单选按钮、复选框和框架 1)单选按钮(RadioButton)
单选按钮以组的形式出现,允许选择其中一项。
? Text属性:按钮上显示的文本 ? TextAlign属性:文本对齐方式
? Checked属性:表示单选按钮的状态,True —— 被选定,False —— 未被选定 ? Click事件:单击后,使Checked属性为True
? CheckedChanged事件:当某个单选按钮的状态被发生变化,该事件随之被触发。 2)复选框(CheckBox)
与RadioButton具有相同属性和事件,之外还有:
? CheckState属性:表示复选框状态,Unchecked——未选定,Checked——被选定,Indeterminate——灰色 3)框架(GroupBox分组框) ? Text属性:标题文本
? Enabled属性:框架和其中的控件
? Visible属性:为False时,框架及其所有控件都被隐藏起来。
框架可以响应Click和DoubleClick事件,但一般不需要编写事件过程。
实验内容
1.参照下图界面,程序运行时,可根据用户的需要,设置字体的前景色、背景色、字体大小等,文本框中的文字会发生相应改变。其中,字体、字体大小、字体效果、字体背景色、字体前景色分别为框架。设计时,先建立框架,再将各个控件分别放入框架内,当移动框架时,里面的控件同时移动。保存项目为shiyan5-1。
创建项目:
1)双击工具箱的“容器”选项卡下的GroupBox按钮,在窗体上建立5个框架控件,分别将其Text属性设置为“字体”、“字体大小”、“字体效果”、“字体背景色”和“字体前景色”。 2)单击RadioButton按钮按钮,并设置其Text属性。
,在“字体”和“字体大小”框架中画出单选
3)单击ListBox按钮,在“字体效果”框架中画出列表框,单击Items属性旁的按钮,输入列表项的内容(如“加粗”、“斜体”等),并每项内容之间按Enter键。
4)单击CheckBox按钮,在“字体背景色”框架中画出复选框,并设置其Text属性。其中,“Red”复选框的Checked属性值为True。 5)单击ComboBox按钮,在“字体前景色”框架中画出下拉列表框,其属性值通过Form_Load事件过程设置。 提示:
(1)在通用声明段中声明6个变量R、G、B、rr、s、f,R、G、B分别用于保存字体背景红、绿、蓝色的设置,rr用于保存颜色,s用于保存字体大小,f用于保存字体。
Dim R%, rr%, G%, B%, s%, f$ '声明R、G、B、rr、s、f为窗体模块级变量
在Form_Load事件过程中设置颜色的初始值,并添加“字体前景色”下拉列表中的列表项。
R = 255 : G = 0 : B = 0 s = 9 : f = \宋体\
ComboBox1.Items.Add(\‘在组合框中添加项目,第1项下标为0开始 ComboBox1.Items.Add(\ ComboBox1.Items.Add(\
ComboBox1.Text = \‘设置当前选项为\
(2) “字体”框架中单选按钮的事件过程代码(其他字体事件过程参照该事件过程) Private Sub RadioButton1_Click(……) Handles RadioButton1.Click '单击“宋体”单选按钮 f = \宋体\
TextBox1.Font = New Font(f, s) End Sub
其中,Font为字体类,设置字体使用New Font(字体名称字符串, 字号,字体效果)
(3)在VB.NET中,每一种颜色用一个整型数据来表示,可使用Color颜色结构中的FromArgb(x,y,z)函数来实现,或用颜色函数RGB(x,y,z),通过ColorTranslator类转换实现。
“字体背景色”框架中复选框的事件过程
Private Sub CheckBox5_CheckedChanged( ??) Handles CheckBox5.CheckedChanged '单击“Red”复选框
If CheckBox5.Checked = True Then‘要判断各个复选框的选定状态,颜色由R、G、B组成 R = 255 Else
R = 0 End If
rr = RGB(R, G, B)
Textbox1.BackColor = System.Drawing.ColorTranslator.FromOle(rr) End Sub
“字体前景色”框架中下拉列表框的事件过程如下:
Private Sub ComboBox1_SelectedIndexChanged(?) Handles ComboBox1.SelectedIndexChanged
'选择“字体前景色”下拉列表 Select Case ComboBox1.Text Case \
Textbox1.ForeColor = Color.Black Case \
Textbox1.ForeColor = Color.White Case \
Textbox1.ForeColor = Color.Yellow End Select End Sub
“字体效果”框架中列表框的事件过程(SelectedIndexChanged事件过程)
If ListBox1.SelectedIndex=0 Then
TextBox1.Font = New System.Drawing.Font(TextBox1.Font, FontStyle.Bold)
End If
也可以用Select Case 语句
2.编写程序输出一个9行的“杨辉三角形”,如图4- 1错误!未找到引用源。所示。保存项目为shiyan5-2.
图4- 1杨辉三角形
提示:
① 杨辉三角形的形式:对角线和每行的第一列均为1,其余各项是它的上一行中同一列元素和其前面一个元素之和。如下数据是一个5行的杨辉三角。
1 0 0 0 0 1 1 0 0 0 1 2 1 0 0 1 3 3 1 0 1 4 6 4 1
a(i, j)=a(i-1, j)+a(i-1, j-1)
②用Space函数确定数据之间的空格:
Label1.Text = Label1.Text & a(i, j) & IIf(a(i, j) < 10, Space(3), Space(2))
PrivateSub Button1_Click(sender AsSystem.Object, e AsSystem.EventArgs) Handles Button1.Click Dimi, j, n, a(8, 8) n = 8 Fori = 0 To n For j = 0 Toi
Ifi = j Or j = 0 Then a(i, j) = 1
ElseIfi<> 0 And j <> 0 Then
a(i, j) = a(i - 1, j) + a(i - 1, j - 1) EndIf Next Next
Fori = 0 To n
Label1.Text &= Space((n - i) * 2 + 2) For j = 0 Toi
Label1.Text = Label1.Text &a(i, j) &IIf(a(i, j) < 10, Space(3), Space(2))