Msflexgrid 或者datagrid 中能否进行数据的输入?

zeq258 2003-12-15 09:13:15
请问在 Msflexgrid 或者datagrid 中能否进行数据的输入?如果不可以,那么如果要进行大量数据的输入的时候,应该用什么样的控键,或者用什么其他的方法呢?
请指教,谢谢!
...全文
25 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
online 2003-12-15
  • 打赏
  • 举报
回复
Option Explicit

' 初始化界面
Private Sub Form_Load()
Dim i As Integer
With MSFlexGrid1
.Cols = 6
.Rows = 10
For i = 0 To 9
.RowHeight(i) = 300
Next i
.TextMatrix(0, 0) = "学号\科目"
.TextMatrix(0, 1) = "数学"
.TextMatrix(0, 2) = "语文"
.TextMatrix(0, 3) = "英语"
.TextMatrix(0, 4) = "政治"
.TextMatrix(0, 5) = "历史"
.TextMatrix(1, 0) = "0201001"
.TextMatrix(2, 0) = "0201002"
.TextMatrix(3, 0) = "0201003"
.TextMatrix(4, 0) = "0201004"
.TextMatrix(5, 0) = "0201005"
.TextMatrix(6, 0) = "0201006"
.TextMatrix(7, 0) = "0201007"
.TextMatrix(8, 0) = "0201008"
.TextMatrix(9, 0) = "0201009"
End With
Label1.Caption = "在选中项双击或单击回车输入成绩,完毕按回车,分数输入MSFlexGrid" & vbCr & _
"而按下Esc键则取消输入..."
End Sub

' 双击表格时,显示文本框用于输入
Private Sub MSFlexGrid1_DblClick()
Dim c As Integer, r As Integer
With MSFlexGrid1
c = .Col: r = .Row
Text1.Left = .Left + .ColPos(c)
Text1.Top = .Top + .RowPos(r)
Text1.Width = .ColWidth(c)
Text1.Height = .RowHeight(r)
Text1 = .Text
Text1.Visible = True
Text1.SetFocus
End With
End Sub

' 单击回车键时,实现和双击鼠标相同的处理
Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
Call MSFlexGrid1_DblClick
End If
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
' ESC取消输入
If KeyAscii = vbKeyEscape Then
Text1.Visible = False
MSFlexGrid1.SetFocus
Exit Sub
End If
' 回车确定输入
If KeyAscii = vbKeyReturn Then
MSFlexGrid1.Text = Text1.Text
Text1.Visible = False
MSFlexGrid1.SetFocus
End If
End Sub

Private Sub Text1_LostFocus()
Text1.Visible = False
MSFlexGrid1.SetFocus
End Sub

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧