您的位置:逆风者 VB 正文
原作者:www.upwinder.com 添加时间:2007-09-01 原文发表:2007-08-31 人气:7 来源:未知

我们在使用Visual Basic for Windows开发时,经常用到网格控件(Grid.VBx),因为此控件可以用来作类似于电子表格形式的输出表,且编程简单,但在此网格控件只有输出功能,而不能直接在网格上输入,这给使用者带来一些不便。如何在执行时向网络控件中输入数据,人们使用了一些方法,但大都使用一文本控件作中间转换,即将欲输入的信息先输入到该文本控件,然后将文本控件的TEXT属性赋给网格的TEXT属性,这种方法尽管解决了向网格输入数据问题,但增加了一文本框,对界面有些不美观,修改部分数字不方便,且影响速度,那么,如何直接向网格输入数据呢?
逆风编程精品
本文将解决直接向网格输入数据问题,基本思想是:使用网格控件KeyPress事件,从键盘上接收所击键位的KeyAscii值,再由Chr$()或Chr()函数转换成字符,然后读出网格单元的当前Text值与由键盘接收到的字符相加,组成新的字符串,再赋给该单元的Text属性,即Grid.Text=Grid.Text+Chr$(KeyAscii)。程序清单如下:
程序中定义了两个Form级变量WgridCol%和WgridRow%。
Sub Grid-KeyPress(KeyAscii as Integer)
Grid.Col=WgridCol%
Grid.Row=WgridRow%
if KeyAscii=8Then `keyascii=8为退格删除键
if Grid.Text<>””Then Grid.text=Mid$(Grid.text,
1,Len(Grid.text)-1)‘删除最后一个字符
Else
Grid.text=Grid.text+Chr$(KeyAscii)
End if
End Sub
Sub Grid-RowColChange()
Wgrid.Col%=Grid.Col
Wgrid.Row%=Grid.Row
End Sub
这样就可以实现对网格的任意输入,可以输入字符、数字等等。由于数字0到9的Ascii值为48到57,小数点Ascii的值为46,所以可以输入任意实数。若您想防止用户输入除数字、小数点以外的任何其他字符,可对来自于键盘的Ascii值进行判断,有条件地接收,就实现了仅输入数值字符。同理也可以限制只输入字母字符。
根据这种思想,也可以对VB中一切不具有输入功能,但具有KeyAscii或者KeyDown事件的控件进行直接输入,如标签Label等。

相关文章

在VB中运行Microsoft Access报表的好方法
如何取得中英混合字符串的长度
从DAO转换到ADO
获取鼠标在屏幕上的位置
(空字串)、Null、Empty、与 Nothing 的区别
ADO控件和DATA控件的冲突(不能共存)的解决
获得、设置鼠标双击间隔时间
DataGrid 控件的使用
VB常用术语释义
大小写互换的三种方法
算法从哪学起(VB篇)
VB 神童教程第二章第八节——组合框控件
VB 神童教程第二章第五节——单选与复选控件
如何在数据控件断开所有的数据连接
数据库(拷贝或移动列表框或组合框中的内容)
在VB中引用.dbf及索引文件
在VB中直接用ODBC API访问数据库
如何用VB访问外来数据库
VB 神童教程第二章第十五节——窗体
VB 神童教程第四章第二节——综合示例七

相关评论


本文章所属分类:首页 VB

  热门关键字: