将MSFlexGrid做成可编辑,并且作成象数据库那样
帮忙吧,朋友
帮忙吧,朋友
解决方案 »
- 25岁了,想进入软件开发行业行吗?
- 帮忙看看
- 怎样用vb制作超链接那样的label
- 求vb中将数据导出Excel的代码,不用连接函数的那种(VB+Access),谢谢了!!!
- 一直困扰VB程序员的问题,如何提高更新ACCESS数据库的速度
- 如何判断打印机(包括网络)是否连接正常!
- 想问一下,数据库更新的时候,数据录入的一般都是text控件的内容,录入的过程中是否进行强行类型转换后再更新数据库?
- 如何在打开IE的时候自动启动其他程序,在关闭IE的时候一同关闭?
- 如何在目录列表框中完成对目录设置焦点的功能??
- VBA access 中如何读取 csv文件的数据,再现等待,解决给分
- 请问B/S怎么做?
- 怎样在win2000关机时执行我的程序?
Private miMSDRow As Integer
Private miMSDCol As Integer
Private miMSDRowSel As Integer
Private miCol As Integer
Private Sub FlexGridInt()
Dim i As Integer
Me.MSFlexGrid.FixedAlignment(0) = flexAlignCenterCenter
MSFlexGrid.ColAlignment(3) = flexAlignLeftCenter
Me.MSFlexGrid.ColWidth(0) = 1500
Me.MSFlexGrid.TextMatrix(0, 0) = "外注先"
Me.MSFlexGrid.FixedAlignment(1) = flexAlignCenterCenter
Me.MSFlexGrid.ColWidth(1) = 3000
Me.MSFlexGrid.TextMatrix(0, 1) = "外注先名称"
Me.MSFlexGrid.FixedAlignment(2) = flexAlignCenterCenter
Me.MSFlexGrid.ColWidth(2) = 6375
Me.MSFlexGrid.TextMatrix(0, 2) = "外注先フリカナ"
Me.MSFlexGrid.FixedAlignment(3) = flexAlignCenterCenter
Me.MSFlexGrid.ColWidth(3) = 2000
Me.MSFlexGrid.TextMatrix(0, 3) = "外注処理フラッグ"
For i = 0 To 88
MSFlexGrid.TextMatrix(i, 0) = i & "000"
MSFlexGrid.TextMatrix(i, 1) = i & "111"
MSFlexGrid.TextMatrix(i, 2) = i & "222"
MSFlexGrid.TextMatrix(i, 3) = i & "333"
Next i
' Call ClickMsGrid(MSFlexGrid)
End SubPrivate Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = 38 Then
KeyCode = 0
If miMSDRow > 1 Then
MSFlexGrid.Row = MSFlexGrid.Row - 1
Call SetMSFlexGrid
End If
End If If KeyCode = 40 Then
KeyCode = 0
If miMSDRow < 187 Then
MSFlexGrid.Row = MSFlexGrid.Row + 1
Call SetMSFlexGrid
End If
End If
If KeyCode = vbKeyReturn Then
Select Case Shift
Case 0
If MSFlexGrid.Col < MSFlexGrid.Cols - 1 Then
MSFlexGrid.Col = MSFlexGrid.Col + 1
Else
If MSFlexGrid.RowSel <> MSFlexGrid.Rows - 1 Then
MSFlexGrid.Row = MSFlexGrid.Row + 1
MSFlexGrid.RowSel = MSFlexGrid.RowSel + 1
MSFlexGrid.Col = 0
End If
End If
MSFlexGrid.TextMatrix(miMSDRow, miMSDCol) = Combo1.Text
Call SetMSFlexGrid
Case 1
If MSFlexGrid.Col <> 0 Then
MSFlexGrid.Col = MSFlexGrid.Col - 1
Else
If MSFlexGrid.RowSel <> 1 Then
MSFlexGrid.Row = MSFlexGrid.Row - 1
MSFlexGrid.RowSel = MSFlexGrid.RowSel - 1
MSFlexGrid.Col = MSFlexGrid.Cols - 1
End If
End If
MSFlexGrid.TextMatrix(miMSDRow, miMSDCol) = Combo1.Text
Call SetMSFlexGrid
End Select
End If
End SubPrivate Sub Combo1_LostFocus()
Combo1.Visible = False
miCol = -1
End SubPrivate Sub Command1_Click()
Dim i As Integer
i = CheckStrSize(Text3.Text)
End SubPrivate Sub Form_Load()
FlexGridInt
End SubPrivate Sub MSFlexGrid_Click()
Call SetMSFlexGrid
End SubPrivate Sub SetMSFlexGrid() If MSFlexGrid.Row <> Me.MSFlexGrid.RowSel Then
Exit Sub
End If
miMSDCol = MSFlexGrid.Col
miMSDRow = MSFlexGrid.Row
miMSDRowSel = Me.MSFlexGrid.RowSel
Select Case miMSDCol
Case 0
' Text1.Visible = False
Text1.Top = MSFlexGrid.CellTop + MSFlexGrid.Top
Text1.Left = MSFlexGrid.CellLeft + MSFlexGrid.Left
Text1.Width = MSFlexGrid.CellWidth
Text1.Height = MSFlexGrid.CellHeight
Text1.Text = MSFlexGrid.TextMatrix(miMSDRow, miMSDCol)
Text1.Tag = miMSDCol & "," & "c"
Text1.Visible = True
miCol = 0
Text1.SetFocus
Case 1
' Text1.Visible = False
Text1.Top = MSFlexGrid.CellTop + MSFlexGrid.Top
Text1.Left = MSFlexGrid.CellLeft + MSFlexGrid.Left
Text1.Width = MSFlexGrid.CellWidth
Text1.Height = MSFlexGrid.CellHeight
Text1.Text = MSFlexGrid.TextMatrix(miMSDRow, miMSDCol)
Text1.Tag = miMSDCol & "," & "c"
Text1.Visible = True
miCol = 1
Text1.SetFocus
Case 2
' Text1.Visible = False
Combo1.Top = MSFlexGrid.CellTop + MSFlexGrid.Top
Combo1.Left = MSFlexGrid.CellLeft + MSFlexGrid.Left
Combo1.Width = MSFlexGrid.CellWidth
Combo1.Text = MSFlexGrid.TextMatrix(miMSDRow, miMSDCol)
Combo1.Visible = True
miCol = 2
Combo1.SetFocus
Case 3
' Text1.Visible = False
Text1.Top = MSFlexGrid.CellTop + MSFlexGrid.Top
Text1.Left = MSFlexGrid.CellLeft + MSFlexGrid.Left
Text1.Width = MSFlexGrid.CellWidth
Text1.Height = MSFlexGrid.CellHeight
Text1.Text = MSFlexGrid.TextMatrix(miMSDRow, miMSDCol)
Text1.Tag = miMSDCol & "," & "c"
Text1.Visible = True
miCol = 3
Text1.SetFocus
End Select
End Sub
If Text1.Visible = True Then
If miMSDCol = 3 Or miMSDCol = 1 Or miMSDCol = 0 Then
Text1.Top = MSFlexGrid.CellTop + MSFlexGrid.Top
Text1.Left = MSFlexGrid.CellLeft + MSFlexGrid.Left
Text1.Width = MSFlexGrid.CellWidth
Text1.Height = MSFlexGrid.CellHeight
Text1.Text = MSFlexGrid.TextMatrix(miMSDRow, miMSDCol)
Text1.Visible = True
Text1.SetFocus
End If
End If
Select Case miCol
Case 0, 1, 3
If Text1.Visible = False Then
Text1.Visible = True
Text1.SetFocus
Exit Sub
End If
Case 2
If Combo1.Visible = False Then
Combo1.Visible = True
Combo1.SetFocus
Exit Sub
End If
End Select
Else
If Text1.Visible = True Then
MSFlexGrid.TextMatrix(miMSDRow, miMSDCol) = Text1.Text
Text1.Visible = False
End If
If Combo1.Visible = True Then
MSFlexGrid.TextMatrix(miMSDRow, miMSDCol) = Combo1.Text
Combo1.Visible = False
End If
End If
End SubPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 38 Then
KeyCode = 0
If miMSDRow > 1 Then
MSFlexGrid.Row = MSFlexGrid.Row - 1
Call SetMSFlexGrid
End If
End If If KeyCode = 40 Then
KeyCode = 0
If miMSDRow < 187 Then
MSFlexGrid.Row = MSFlexGrid.Row + 1
Call SetMSFlexGrid
End If
End If
If KeyCode = vbKeyReturn Then
Select Case Shift
Case 0
If MSFlexGrid.Col < MSFlexGrid.Cols - 1 Then
MSFlexGrid.Col = MSFlexGrid.Col + 1
Else
If MSFlexGrid.RowSel <> MSFlexGrid.Rows - 1 Then
MSFlexGrid.Row = MSFlexGrid.Row + 1
MSFlexGrid.RowSel = MSFlexGrid.RowSel + 1
MSFlexGrid.Col = 0
End If
End If
MSFlexGrid.TextMatrix(miMSDRow, miMSDCol) = Text1.Text
Call SetMSFlexGrid
Case 1
If MSFlexGrid.Col <> 0 Then
MSFlexGrid.Col = MSFlexGrid.Col - 1
Else
If MSFlexGrid.RowSel <> 1 Then
MSFlexGrid.Row = MSFlexGrid.Row - 1
MSFlexGrid.RowSel = MSFlexGrid.RowSel - 1
MSFlexGrid.Col = MSFlexGrid.Cols - 1
End If
End If
MSFlexGrid.TextMatrix(miMSDRow, miMSDCol) = Text1.Text
Call SetMSFlexGrid
End Select
End If
End SubPrivate Sub Text1_LostFocus()
Text1.Visible = False
miCol = -1
End SubPrivate Sub Text1_Validate(Cancel As Boolean)
MSFlexGrid.TextMatrix(miMSDRow, miMSDCol) = Text1.Text
End SubPrivate Sub Text2_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 38 Or KeyCode = 40 Then
Call SetMsGrid(MSFlexGrid, KeyCode)
End If
End Sub
czwwh
VSFlexGrid只能得到试用版,怎么能给客户
czwwh你有
VSFlexGrid的完整版,
可以发给我
mail:[email protected]
我的
mail:[email protected]
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 SubPrivate 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 SubPrivate Sub Text1_LostFocus()
Text1.Visible = False
MSFlexGrid1.SetFocus
End Sub