网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Visual Basic
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.VB软件设计中的几个问题.
.利用VB测声卡.
.读取和修改Windows注册表.
.VB“变态”用法之高效字串指针类.
.除法运算符\与/的区别.
.VisualBasic使用技巧.
.VB5实现窗口图像缩放、滚动技巧.
.如何做旋转的光盘动画.
.把最小化图标放到任务栏右下角.
.通过VisualBasic获取网卡地址.
.怎样接收电子邮件(POP3协议简介.
.在VB中利用UDP协议编写聊天程序.
.用VB设计条形码轻印刷系统.
.用VisualBasic设计个性化文件夹图.
.VisualBasic中实现绘图区的大十字.
.在VB应用程序中恰当的使用声音.
.VB6 ADO ListView数据库分页显示.
.在VisualBasic中使用Rundll32.ex.
.DataGrid控件的使用五.
.VB图像处理之铅笔画算法和木雕算.

用VB实现类电子表格的数据录入

发表日期:2006-2-27


----在编程中经常会遇到应用程序中要输入大量数据的问题,如果
能在该程序中实现象电子表格那样的输入界面,就可以解决这个问
题。

----VB虽提供了Grid网格控件,但其只具有显示输出功能,要使其
能接受输入数据,必须对它加以改造,在计算机报刊中的许多文章都
对此进行了探讨,但所用方法都不能令人满意,笔者经过摸索,找出
以下办法,供有兴趣者参考。

----首先在VB5.0环境下Form1中放上如图1所示的各控件:Text1;Grid1;
Command1;Command2;Vscroll1;Hscroll1。
图1Form1及其控件

----双击Form1打开Code窗口,编制程序代码。

Diminputcolnum,inputrownumAsInteger
PrivateSubCommand2_Click()
End
EndSub

PrivateSubForm_Activate()
Text1.SetFocus'文本框获得焦点
EndSub


PrivateSubForm_Load()
Grid1.ColWidth(0)=540
Grid1.RowHeight(0)=216'单元格的宽和高

inputcolnum=13
inputrownum=15'表中显示的列、行数

Grid1.Cols=20
Grid1.Rows=20'表中总的列、行数

HScroll1.Height=300
VScroll1.Width=300'水平和垂直滚动条的高、宽度

Grid1.Height=(inputrownum 1)'
(Grid1.RowHeight(0) Grid1.GridLineWidth*12)
12 HScroll1.Height
'800×600象素时为12;640×480为15
Grid1.Width=(inputcolnum 1)*
(Grid1.ColWidth(0) Grid1.GridLineWidth*12)
12 VScroll1.Width
'表的高、宽度

HScroll1.Width=Grid1.Width-VScroll1.Width
VScroll1.Height=Grid1.Height-HScroll1.Height
'水平和垂直滚动条的宽、高度

HScroll1.Left=Grid1.Left
HScroll1.Top=Grid1.Top Grid1.Height-HScroll1.Height
'水平滚动条的位置

VScroll1.Left=Grid1.Left Grid1.Width-VScroll1.Width
VScroll1.Top=Grid1.Top
'垂直滚动条的位置

HScroll1.Min=1
HScroll1.Max=Grid1.Cols-inputcolnum
VScroll1.Min=1
VScroll1.Max=Grid1.Rows-inputrownum
'水平和垂直滚动条的范围

Text1.Width=Grid1.ColWidth(0)
Text1.Height=Grid1.RowHeight(0)
'文本框的宽、高度

Text1.Left=Grid1.Left Grid1.ColWidth(0)
Grid1.GridLineWidth*12
Text1.Top=Grid1.Top Grid1.RowHeight(0)
Grid1.GridLineWidth*12
'文本框的位置

'初始化赋值
Text1.Visible=True

ForI=1ToGrid1.Cols-1
Grid1.Col=I
Grid1.Row=0
Grid1.Text=Str(I)
Grid1.Col=0
Grid1.Row=I
Grid1.Text=Str(I)
NextI

Grid1.Col=1
Grid1.Row=1'网格的列、行初始位置

Grid1.SelStartCol=1
Grid1.SelStartRow=1'网格中单元格的列、行初始位置

Grid1.LeftCol=1
Grid1.TopRow=1'网格中左上角的列、行初始位置

EndSub


PrivateSubGrid1_MouseDown(ButtonAsInteger,
ShiftAsInteger,XAsSingle,YAsSingle)
Grid1.Col=Grid1.SelStartCol
Grid1.Row=Grid1.SelStartRow
Text1.Text=Grid1.Text
colnum=Grid1.Col-Grid1.LeftCol 1
rownum=Grid1.Row-Grid1.TopRow 1
Text1.Left=Grid1.Left (Grid1.ColWidth(0)
Grid1.GridLineWidth*12)*colnum
Text1.Top=Grid1.Top (Grid1.RowHeight(0)
Grid1.GridLineWidth*12)*rownum
EndSub


PrivateSubGrid1_MouseUp(ButtonAsInteger,
ShiftAsInteger,XAsSingle,YAsSingle)
Text1.SetFocus
EndSub


PrivateSubHScroll1_Change()
startcol=Grid1.LeftCol
Grid1.LeftCol=HScroll1.Value
Grid1.SelStartCol=Grid1.SelStartCol
Grid1.LeftCol-startcol
Grid1.Col=Grid1.SelStartCol
Text1.Text=Grid1.Text
EndSub

PrivateSubText1_Change()
Grid1.Text=Text1.Text
EndSub

PrivateSubText1_KeyDown(KeyCode
AsInteger,ShiftAsInteger)
SelectCaseKeyCode
Case38'光标向上
Grid1.Text=Text1.Text

IfGrid1.SelStartRow<2Then
IfGrid1.TopRow>1Then
VScroll1.Value=VScroll1.Value-1
Else
Grid1.SelStartRow=1
EndIf
Else
IfGrid1.TopRow=Grid1.SelStartRowThen
VScroll1.Value=VScroll1.Value-1
Else
Grid1.SelStartRow=Grid1.SelStartRow-1
EndIf
EndIf

Grid1.Col=Grid1.SelStartCol
Grid1.Row=Grid1.SelStartRow

colnum=Grid1.Col-Grid1.LeftCol 1
rownum=Grid1.Row-Grid1.TopRow 1

Text1.Text=Grid1.Text
Text1.Left=Grid1.Left (Grid1.ColWidth(0)
Grid1.GridLineWidth*12)*colnum
Text1.Top=Grid1.Top (Grid1.RowHeight(0)
Grid1.GridLineWidth*12)*rownum

ExitSub

Case40'光标向下
Grid1.Text=Text1.Text
IfGrid1.SelStartRow>inputrownum-1Then
IfGrid1.TopRow<Grid1.Rows-inputrownumThen
VScroll1.Value=VScroll1.Value 1
Else
IfVScroll1.Value=VScroll1.MaxAnd
Grid1.SelStartRow<Grid1.Rows-1Then
Grid1.SelStartRow=Grid1.SelStartRow 1
Else
Grid1.SelStartRow=Grid1.Rows-1
EndIf
EndIf
Else
IfGrid1.TopRow=Grid1.SelStartRow-inputrownumThen
VScroll1.Value=VScroll1.Value 1
Else
Grid1.SelStartRow=Grid1.SelStartRow 1
EndIf
EndIf

Grid1.Col=Grid1.SelStartCol
Grid1.Row=Grid1.SelStartRow
colnum=Grid1.Col-Grid1.LeftCol 1
rownum=Grid1.Row-Grid1.TopRow 1
Text1.Text=Grid1.Text
Text1.Left=Grid1.Left (Grid1.ColWidth(0)
Grid1.GridLineWidth*12)*colnum
Text1.Top=Grid1.Top (Grid1.RowHeight(0)
Grid1.GridLineWidth*12)*rownum

ExitSub->

上一篇:VB中多媒体五种控制手段 人气:3582
下一篇:用VisualBasic开发数据库浏览器 人气:3071
浏览全部Visual Basic的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐