老师留了个作业,必须用MSFlexGrid控件实现对数据库的删除,修改。删除容易解决,但是修改很难。我用一个MSFlexGrid和一个TextBox组合实现对其内容的修改,作了一个ActiveX空间,内容如下:
1,在设计器里画一个MSFlexGrid和TextBox
2,代码如下:
Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)
Dim char As String
If KeyAscii = 13 Then
Text1.Text = MSFlexGrid1.Text
Text1.SelStart = Len(Text1.Text)
Else
char = Chr$(KeyAscii)
Text1.Text = char
Text1.SelStart = 1
End If
 '隐藏文本框,设置高度和宽度
Text1.Visible = False
Text1.Height = MSFlexGrid1.RowHeight(MSFlexGrid1.Row) - (Screen.TwipsPerPixelY) * 2
Text1.Width = MSFlexGrid1.ColWidth(MSFlexGrid1.Col)
' 计算文本框左坐标
Text1.Left = MSFlexGrid1.CellLeft + MSFlexGrid1.Left
Text1.Top = MSFlexGrid1.CellTop + MSFlexGrid1.Top
Text1.Visible = True
Text1.SetFocus
KeyAscii = 0
End Sub
Private Sub MSFlexGrid1_LeaveCell()
MSFlexGrid1.Text = Text1.Text
If MSFlexGrid1.Col = 0 And MSFlexGrid1.Row <> 0 And _
MSFlexGrid1.Row = MSFlexGrid1.Rows - 1 And MSFlexGrid1.Text <> "" Then
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
End If
End Sub
Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, _
x As Single, y As Single)
Text1.Visible = False
End Sub
Private Sub MSFlexGrid1_RowColChange()
Text1.Text = MSFlexGrid1.Text
End Sub
Private Sub MSFlexGrid1_DblClick()
If MSFlexGrid1.Row > 0 And MSFlexGrid1.Col = 0 Then MSFlexGrid1_KeyPress 13
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
MSFlexGrid1.Text = Text1.Text
Text1.Visible = False
MSFlexGrid1.SetFocus
If MSFlexGrid1.Col < (MSFlexGrid1.Cols - 1) Then
MSFlexGrid1.Col = MSFlexGrid1.Col + 1
ElseIf MSFlexGrid1.Row < MSFlexGrid1.Rows - 1 Then
MSFlexGrid1.Row = MSFlexGrid1.Row + 1
MSFlexGrid1.Col = 0
End If
KeyAscii = 0
End If
End Sub但是,问题出来了!~用到程序中,没有Click事件等一些写响应事件的代码!~
请高手帮忙