自己用vb制作类似电子表格的可输入控件

自己用vb制作类似电子表格的可输入控件


2024年7月3日发(作者:)

自己用vb制作类似电子表格的可输入控件

应朋友之邀,准备制作一个工程软件,我首选用Visual basic 6.0语言工具来编程,可是

在编程的过程中发现需要输入输出大量数据的控件,像MSFlexGrid, MSHFlexGrid, DataGrid

等不能像Excel 中电子表格那样直接输入数据,可愁坏了我,于是在网上搜罗一翻,把那些

个代码进行了调试,还不能使自己满意,靠别人还不如靠自己,运用别人的灵感加上自己的

努力,我终于把MSFlexGrid控件给进行了改造,自己感觉挺满意的,就把自己的改造心德

写成文字,分享给那些喜欢编程的童鞋们参考。

基本思路:

1. MSFlexGrid控件不能直接进行数据输入,我用一个文本框代替单元格的输入工作。

2. 当任何一个单元格获得焦点时,文本框完全覆盖获得焦点的单元格,这样就不会像

MSFlexGrid控件的第一印象让人感觉生硬不爽。

3. 鼠标点击单元格,上下左右健移动单元格时,文本框还要显示相应单元格的数据,基本

上是完全代替了获得焦点的单元格,这样,一个文本框的作用不仅仅是向单元格输入,

还会起到显示数据的作用。

以上思路,其实就是这么简单,不多说,下面就是具体编程过程,代码也很简单。

一, 在窗体From1中添加,一个MSFlexGrid控件,一个文本框text1.

二, 属性:

控件

MSFlexGri

d控件

Text控件

属性

名称

height width Borderstyle

1180

0

RowHeightMin fixedcols rows

300

0

4

cols

8

Grid1

Text1 280

三, 属性设置好了,现在就开始写代码。你也可以全部复制粘贴

Option Explicit

Const Enter_Asc = 13 ‘首先需要声明一些常量

Const Tab_Asc = 9

Private Sub Form_Load()

Dim i As Integer

For i = 0 To – 1 ‘设置Grid控件的宽度

th(i) = 1200

Next i

For i = 0 To 7 Step 2

trix(0, i) = "测点编号" '在Grid固定行添加列标题。

Next i

For i = 1 To 7 Step 2

trix(0, i) = "测点厚度(mm)"

Next i

End Sub

Private Sub Grid1_Click()

‘下面这两句很关键,是指在Grid1控件单击事件发生时,Text1控件会在相应单元格上出

= + (th(0)) * ol

= + (ght(0)) * ow

If = Then ‘判断鼠标是否点击了列标题行,如果是的话,则自动转

至下一行显示文本框,文本框就不会覆盖在列标题上。

= + (ght(0)) * 1

End If

End Sub

Private Sub Grid1_KeyPress(KeyAscii As Integer) ‘Grid控件接受键盘输入时激活文本框

us

rt = 0

If KeyAscii <> Enter_Asc And KeyAscii <> Tab_Asc Then

SendKeys Chr(KeyAscii)

End If

End Sub

Private Sub Grid1_RowColChange() ‘可以使用上下左右健控制单元格,当单元格的焦点

变化时文本框也随之变化。这句很关键

=

= + (th(0)) *

= + (ght(0)) *

End Sub

Private Sub Text1_LostFocus()

=

End Sub

Private Sub Text1_Change() ‘文本框的内容变化时,让文本框的内容与Grid控件内容一致

=

End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = Enter_Asc Then

us

KeyAscii = 0

End If

End Sub

Private Sub Text1_LostFocus()

=

End Sub


发布者:admin,转转请注明出处:http://www.yc00.com/news/1719952611a2759392.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信