实验9 输入对话框、通用对话框、保存对话框

(P158、P166、P172)

输入对话框 InputBox

 窗体标题为:设计输入对话框 班级 学号 姓名。

1.输入对话框(P158)

 InputBox(提示[,标题][,默认值][,xpos][,ypos])

 例:InputBox("请输入文件名","对话输入框","File1")

2.通用对话框(P166)

 工程—部件—Ms CommonDialog Control 6.0—

设置 Action 属性—打开、保存、颜色、字体、打印、帮助。

3.保存对话框(P172)

 右击通用对话框图标—属性—

 标题:保存文件

 文件名称:form1.frm

 默认扩展名:frm

 初始化路径:E:\VB

4.命令按钮事件过程

Dim temp As String

Dim payroll(5) As String

Private Sub CmdInput_Click()

Dim payroll(5) As String

Dim sum As Single

For i = 0 To 6

Label2(i).Caption = "" '清空接收输入数据的标签

Next i

ch$ = Chr(13) + Chr(10)  '回车换行 ASCII 码

Title$ = "工资输入框"

For i = 0 To 5

massage$ = ch$ + ch$ + ch$ + ch$ + ch$ + Label3(i).Caption

flag = 1

Title$ = Label3(i).Caption + "输入框"

Do While flag = 1 '输入数据

temp$ = InputBox$(massage$, Title$, , 500, 5000)

If temp$ <> "" Then

flag = 0

info = MsgBox("数据正确吗?", 36, "数据核对框")

'是、否按钮号:4+32=36

If info = 7 Then '选择 No,数据不正确,否按钮值为7

info1 = MsgBox("你想重新输入这个数据吗?", 36,"输入选择框")

If info1 = 6 Then flag = 1 '选择 Yes,重新输入,是按钮值为6

End If

Else

Exit For '输入“空串”时结束

End If

payroll(i) = temp$

Loop

Label2(i).Caption = payroll(i) + "元" '将正确数据显示在标签栏

sum = sum + Val(payroll(i))

Next i

Label2(6).Caption = Str$(sum) + "元"

End Sub

Private Sub CmdSave_Click()

CommonDialog1.DialogTitle = "保存文件"

CommonDialog1.Filter = "frm 文件|*.frm|All Files(*.*)|*.*"

CommonDialog1.FilterIndex = 1

CommonDialog1.InitDir = "E:\VB"

CommonDialog1.Flags = 6

CommonDialog1.Action = 2

End Sub

Private Sub CmdExit_Click()

End

End Sub

 

实验10 图片框、图像框、计时器

(P186、P188、P191P200

 地球公转 Earth

 窗体标题为:设计地球公转动画1 班级 学号 姓名。

 窗体控件有:图像框、图片框、计时器、命令按钮5个。

 图像文件参考路径和尺寸:E:\VB,

一幅地球 100 * 100 图像、4幅背景 600 * 400 图像。

 1.图片框 PictureBox(P186)

  AutoSize 属性:图片框能自动适应图形的大小。

图片框可以包括其他控件,占内存大。

 2.图像框 Image(P188)

  Stretch 拉伸属性:拉伸图形自动适应图像框大小。

 3.计时器(P191)

  InterVal 属性:控制间隔时间,如 100 ms。

 4.地球公转 Earth 命令按钮事件过程(P200)

'装载地球

Private Sub Form_Load()

 ImgEarth.Picture = LoadPicture("E:\VB\dq3.gif")

End Sub

'地球公转

Private Static Sub Timer1_Timer()

 rx = 4000  '地球公转轨道的长轴

 ry = 2000  '地球公转轨道的短轴

 x = 0.4 * Width + Cos(i) * rx

 y = 0.3 * Height - Sin(i) * ry  '地球逆时针公转

 ImgEarth.Move x, y

 i = i + 0.1  '地球公转轨道上间隔弧度

End Sub

'按钮切换背景图像

Private Sub CmdYjtk_Click()

 Picture1.Picture = LoadPicture("E:\VB\xxgdt.jpg")

End Sub

Private Sub CmdLtby_Click()

 Picture1.Picture = LoadPicture("E:\VB\ltby1.jpg")

End Sub

Private Sub CmdSdbj_Click()

 Picture1.Picture = LoadPicture("E:\VB\bjtam.jpg")

End Sub

Private Sub CmdGy_Click()

 Picture1.Picture = LoadPicture("E:\VB\qdh_nr.jpg")

End Sub

'退出

Private Sub CmdExit_Click()

 End

End Sub

 

实验11 设计菜单 (P207)

 窗体标题为:设计窗体菜单 班级 学号 姓名。

 1.设计菜单(P207)

  工具栏—菜单编辑器—菜单标题:

  文件(&F),名称:MenuFile;

  下一个 — 子菜单标题:

  打开(&O),快捷键 Ctrl+O,

  保存(&S),快捷键 Ctrl+S。

 2.打开、保存对话框(P172)

 通用对话框(P166)

工程—部件—Ms CommonDialog Control 6.0—

设置 Action 属性—打开、保存、颜色、字体、打印、帮助。

右击通用对话框图标—属性—标题:保存文件,文件名称:工程文件.vbp,

默认扩展名:vbp,初始化路径:E:\VB。

  剪切、复制、粘贴命令(P215)

 字体、 颜色对话框(P216、P127)

 3.设计菜单 Menu 命令事件过程

'清空剪贴板

Private Sub Form_Load()

 Clipboard.Clear

 MenuEditPaste.Enabled = False

End Sub

'打开文件

Private Sub MenuFileOpen_Click()

 CmnDialog1.DialogTitle = "打开文件"

 CmnDialog1.Filter = "vbp 文件|*.vbp|All Files(*.*)|*.*"

 CmnDialog1.FilterIndex = 1

 CmnDialog1.InitDir = "E:\VB"

 CmnDialog1.Flags = 1

 CmnDialog1.Action = 1

End Sub

'保存文件

Private Sub MenuFileSeve_Click()

 CmnDialog1.DialogTitle = "保存文件"

 CmnDialog1.Filter = "工程文件 vbp|*.vbp|All Files(*.*)|*.*"

 CmnDialog1.FilterIndex = 1

 CmnDialog1.InitDir = "E:\VB"

 CmnDialog1.Flags = 6

 CmnDialog1.Action = 2

End Sub

'退出

Private Sub MenuFileExit_Click()

 End

End Sub

'剪切文本

Private Sub MenuEditCut_Click()

 If TypeOf Screen.ActiveControl Is TextBox Then

 '屏幕激活控件所选文本放入剪贴板

 Clipboard.SetText Screen.ActiveControl.SelText

 Screen.ActiveControl.SelText = ""

 MenuEditPaste.Enabled = True

 End If

End Sub

'复制文本

Private Sub MenuEditCopy_Click()

 If TypeOf Screen.ActiveControl Is TextBox Then

 Clipboard.SetText Screen.ActiveControl.SelText

 MenuEditPaste.Enabled = True

 End If

End Sub

'粘贴文本

Private Sub MenuEditPaste_Click()

 If Len(Clipboard.GetText) > 0 Then

 '剪贴板所获取的文本覆盖屏幕激活控件所选文本

 Screen.ActiveControl.SelText = Clipboard.GetText

 End If

End Sub

'设置文本

Private Sub MenuSetting_Click(Index As Integer)

 If Index = 0 Then

 CmnDialog1.Flags = 1

 CmnDialog1.ShowFont

 '设置屏幕激活控件文本的字体、字号

 Screen.ActiveControl.FontName = CmnDialog1.FontName

 Screen.ActiveControl.FontSize = CmnDialog1.FontSize

 End If

 

 If Index = 1 Then

 CmnDialog1.Flags = 1

 CmnDialog1.ShowColor

  '设置屏幕激活控件文本的颜色

 Screen.ActiveControl.ForeColor = CmnDialog1.Color

 End If

End Sub

 

实验12 图形设计(P255)

 图形设计

 图形设计 Pset Pset1

画点 PSet (x, y), QBColor(c)(P248)

绘制直线 Line,RGB(r,g,b)(P251)

绘制矩形 Line(x1,y1)-(x2,y2),RGB(r,g,b),B(P252)

绘制圆形 Circle(P255)

1.设置窗体属性:标题“图形设计 班级 学号 姓名”。

2.命令按钮事件过程

 '高山

Private Sub CmdGs_Click()

 DrawWidth = 2

 Line (40, 40)-(11950, 8220), QBColor(14), B '边框

 DrawWidth = 3

 c = 14

Do

For x = 555 To 5555 Step 0.1

 y = 3000 - Sin(x / 333) * 0.4 * x '高山

 PSet (x, y), QBColor(c)

Next x

c = c - 1

Loop Until c = 10

End Sub

 

'流水

Private Sub Cmdls_Click()

 DrawWidth = 2

c = 14

Do

For i = 4 To 1 Step -1

 y = 7300 - 300 * i

 X1 = 8350 - 800 * i

 X2 = 8350 + 800 * i

For x = X1 To X2 Step 0.1

 PSet (x, y), QBColor(c)

Next x

Next i

 c = c - 1

Loop Until c = 9

End Sub

 

'阳光

Private Sub Cmdyg_Click()

 DrawWidth = 3

 Circle (8000, 2000), 500, QBColor(14)

 DrawWidth = 66

 Circle (8000, 2000), 0, QBColor(12)

 DrawWidth = 1

c = 9

Do

For r = 666 To 1800 Step 0.2

For i = 0 To 6.28 Step 6.28 / 32

 x = 8000 + Cos(i) * r

 y = 2000 + Sin(i) * r

 PSet (x, y), QBColor(c)

Next i

Next r

c = c + 1

Loop Until c = 15

End Sub

 

'大桥

Private Sub CmdDq_Click()

 DrawWidth = 3

For i = 3.14 To 0 Step -3.14 / 9999

 x = 8350 + Cos(i) * 3450

 y = 6000 - Sin(i) * 1400

 PSet (x, y), QBColor(5)

Next i

 DrawWidth = 2

c = 9

Do

For j = 6350 To 10350 Step 800

For i = 3.14 To 0 Step -3.14 / 9999

 x = j + Cos(i) * 400

 y = 5900 - Sin(i) * 600

 PSet (x, y), QBColor(c)

Next i

Next j

c = c + 1

Loop Until c = 15

End Sub

 

'清除

Private Sub CmdCls_Click()

 Cls

End Sub

 

'退出

Private Sub CmdExit_Click()

 End

End Sub

 

模拟手工画图

模拟手工画图 Mysght

mysght.jpg (19078 字节)

'模拟手工画图

Private Sub CmdMysght_Click()
DrawWidth = 2
Line (40, 40)-(11950, 8220), QBColor(14), B '边框

'高山
DrawWidth = 3
c = 14
Do
For x = 555 To 5555 Step 0.2
y = 3000 - Sin(x / 333) * 0.4 * x '高山
PSet (x, y), QBColor(c)
Next x
c = c - 1
Loop Until c = 10

'流水
DrawWidth = 2
c = 14
Do
For i = 4 To 1 Step -1
y = 7300 - 300 * i
X1 = 8350 - 800 * i
X2 = 8350 + 800 * i
For x = X1 To X2 Step 0.4
PSet (x, y), QBColor(c)
Next x
Next i
c = c - 1
Loop Until c = 8

'大桥
DrawWidth = 3
c = 9
Do
For i = 3.14 To 0 Step -3.14 / 9999
x = 8350 + Cos(i) * 3450
y = 6000 - Sin(i) * 1400
PSet (x, y), QBColor(c)
Next i
c = c + 1
Loop Until c = 14

DrawWidth = 2
c = 14
Do
For j = 6350 To 10350 Step 800
For i = 3.14 To 0 Step -3.14 / 5555
x = j + Cos(i) * 400
y = 5900 - Sin(i) * 600
PSet (x, y), QBColor(c)
Next i
Next j
c = c - 1
Loop Until c = 9
End Sub

'外射阳光
Private Sub CmdWsyg_Click()
DrawWidth = 66
Circle (8000, 2000), 0, QBColor(12)

DrawWidth = 3
c = 9
Do
For i = 3.14 To -3.14 Step -6.28 / 9999
x = 8000 + Cos(i) * 500
y = 2000 - Sin(i) * 500
PSet (x, y), QBColor(c)
Next i
c = c + 1
Loop Until c = 15

DrawWidth = 1
c = 9
Do
For r = 666 To 1800 Step 0.4
For i = 0 To 6.28 Step 6.28 / 32
x = 8000 + Cos(i) * r
y = 2000 + Sin(i) * r
PSet (x, y), QBColor(c)
Next i
Next r
c = c + 1
Loop Until c = 16
End Sub

'扫描阳光
Private Sub CmdSmyg_Click()
DrawWidth = 66
Circle (8000, 2000), 0, QBColor(12)

DrawWidth = 3
c = 9
Do
For i = 3.14 To -3.14 Step -6.28 / 9999
x = 8000 + Cos(i) * 500
y = 2000 - Sin(i) * 500
PSet (x, y), QBColor(c)
Next i
c = c + 1
Loop Until c = 15

DrawWidth = 1
c = 9
Do
For i = 3.14 To -3.14 Step -6.28 / 16
For r = 666 To 1600 Step 0.1
x = 8000 + Cos(i) * r
y = 2000 - Sin(i) * r
PSet (x, y), QBColor(c)
Next r
Next i

For r = 666 To 1000 Step 0.2
For i = 3.14 To -3.14 Step -6.28 / 64
x = 8000 + Cos(i) * r
y = 2000 - Sin(i) * r
PSet (x, y), QBColor(c)
Next i
Next r
c = c + 1
Loop Until c = 16
End Sub

'清除
Private Sub CmdCls_Click()
Cls
End Sub

'退出
Private Sub CmdExit_Click()
End
End Sub

VB图形程序设计

VB图形程序设计 VBtxsj VBtxsj1

 VBtxsj1.gif (23834 字节)

'花纹边框
Private Sub CmdHwbk_Click()
DrawWidth = 2
Line (40, 40)-(11950, 8220), QBColor(14), B '边框

'上下花纹边框
DrawWidth = 1
c = 14
PI = 3.14159
Do
For X1 = 700 To 11300 Step 400
For i = 0 To 2 * PI Step 0.002
hy = 3
Y1 = 800
x = X1 + Cos(hy * i) * Cos(i) * 200
y = Y1 - Cos(hy * i) * Sin(i) * 200
PSet (x, y), QBColor(c)
Next i
Next X1
c = c - 1
Loop Until c = 9

'左右花纹边框
DrawWidth = 1
c = 14
PI = 3.14159
Do
For Y1 = 6500 To 1300 Step -450
For i = 0 To 2 * PI Step 0.002
X1 = 800
hy = 5
x = X1 + Cos(hy * i) * Cos(i) * 200
y = Y1 - Cos(hy * i) * Sin(i) * 200
PSet (x, y), QBColor(c)
Next i
Next Y1
c = c - 1
Loop Until c = 12
End Sub

'花纹椭圆
Private Sub CmdHwty_Click()
DrawWidth = 1
c = 9
hy = 4
X1 = 6000
Y1 = 4100
PI = 3.14159
Do
For j = 5.5 * PI / 8 To 19 * PI / 8 Step PI / 20
For i = 0 To 2 * PI Step 0.002
x = X1 + Cos(j) * 3500 + Cos(hy * i) * Cos(i) * 200
y = Y1 + Sin(j) * 2800 + Cos(hy * i) * Sin(i) * 200
PSet (x, y), QBColor(c)
Next i
Next j
c = c + 1
Loop Until c = 15
End Sub

'四个小窗、四朵小花
Private Sub CmdSgxc_Click()

'左上小窗、小花
DrawWidth = 1
Line (1300, 1300)-(2500, 2500), QBColor(14), B
c = 13
hy = 3
PI = 3.14159
For i = 0 To 2 * PI Step 0.0001
X1 = 1900
Y1 = 1900
x = X1 + Cos(hy * i) * Cos(i) * 500
y = Y1 + Cos(hy * i) * Sin(i) * 500
PSet (x, y), QBColor(c)
Next i

'右上小窗、小花

'右下小窗、小花

'左下小窗、小花

End Sub

'清除
Private Sub CmdCls_Click()
Cls
End Sub

'退出
Private Sub CmdExit_Click()
End
End Sub

 

实验13 数据控件(P284)数据窗体、环境、报表

1.创建数据库和表(P280)

 1)新建标准 EXE 工程。

 2)外接程序—可视化数据管理器—

文件—新建— MS Access — Version 7.0 MDB —

数据库名,如 E:\VB\wssdk97.mdb。

 3)创建表

右击“数据库窗口”—新建表—表名:如,图书清单表—添加字段:

图书号、Text、3;

图书名称、Text、20;

作者、出版社、图书定价、图书类别—生成表。

 4)输入数据

右击图书清单表—打开—添加—

图书号:01

图书名称:VB 程序设计—更新。

2.数据控件 DataCtrl wssdk97.rar (P284)

 1)新建标准 EXE 工程。

 2)外接程序—可视化数据管理器—

文件—打开数据库— MS Access —如 E:\VB\wssdk97.mdb。

 3)工具箱—数据控件—添加到窗体上。

 4)数据控件 data1 属性:

DatabaseName:如 E:\VB\wssdk97.mdb

RecordSource:如 图书清单表

 5)数据感知控件连接数据控件,如文本框1

DataSource:如 data1;

DataField:如 图书名称。

3.数据窗体 DataWin

 1)新建标准 EXE 工程。

 2)外接程序—可视化数据管理器—

文件—打开数据库— MS Access—如 E:\VB\wssdk97.mdb。

 3)实用程序—数据窗体设计器—

窗体名称,如 DataWin;

记录源,如图书清单表。

选择“可用字段”移到“包括字段”

生成窗体。

 4)运行窗体:工程—工程1 属性—启动对象:DataWin。

 5)修改数据控件路径

 数据窗体代码—查找数据控件名称— data1.RecordSet.AddNew — 

data 1属性—DatabaseName:如 D:\VB\wssdk97.mdb。

4.添加 ADO Data 控件

工程—部件—MS ADO Data Control 6.0(OLEDB)—

 双击工具箱中 ADO Data 控件图标。

5.数据报表 DataRep

 1)向工程中添加数据环境

工程—Data Environment。

 2)创建连接对象

右击 Connection1—属性—提供者 Provider:Microsoft.Jet.OLEDB.3.51;

连接:如 E:\VB\wssdk97.mdb

 3)创建命令对象

右击 Connection1—添加命令 Command1—

右击 Command1—属性—数据库对象:表,对象名称:如图书清单表。

 4)添加 DataReport

工程—添加 DataReport。

 5)设计报表的界面

打开数据环境—把字段:图书号、图书名称、作者、出版社、图书定价、图书类别

拖入报表中的细节中,然后把将标签部分拖到页标头中。

 右击报表标头—插入控件—报表标题—通过属性设置字体、字号、颜色。

 6)报表标题初始化代码

Private Sub DataReport_Initialize()

DataReport1.Title = "网络书店图书报表"

End Sub

 (* 运行报表:工程—工程1 属性—启动对象:DataReport1。)

6.图书管理 BookMng

 图书管理菜单:数据控件、数据窗体、图书报表。

Private Sub DataCtrl_Click()
Form1.Show
Form2.Hide
End Sub

Private Sub DataWin_Click()
Form1.Hide
Form2.Show
End Sub

Private Sub Exit_Click()
Unload Me
End Sub

Private Sub BookRep_Click()
DataReport1.Show
End Sub