[100分悬赏]关于msflexgrid删除数据的有关问题

[100分悬赏]关于msflexgrid删除数据的问题
在msflexgrid中输入数据的代码是在网上找的,我想另外加一个按delete键删除选定单元格数据的语句,但是加了之后不起作用,请各位高手给我分析一下是哪里出了冲突?
  ps:我是新建了一个名字为gridtext的文本框和一个名字为mfg的msflexgrid控件。
Private Sub Form_Load()
rown = 5
With mfg
For i = 0 To 5
  .ColAlignment(i) = flexAlignCenterCenter
  .RowHeight(0) = 600
Next i
  .ColWidth(0) = 400
End With
End Sub
Private Sub mfg_DblClick()
  GridEdit Asc(" ")
End Sub
Private Sub mfg_KeyPress(KeyAscii As Integer)
  GridEdit KeyAscii
End Sub
Sub GridEdit(KeyAscii As Integer)
  gridtext.FontName = mfg.FontName
  gridtext.FontSize = mfg.FontSize
  Select Case KeyAscii
  Case 0 To Asc(" ")
  gridtext = mfg
  gridtext.SelStart = 0
  gridtext.SelLength = Len(gridtext.Text)
  Case Else
  gridtext = Chr(KeyAscii)
  gridtext.SelStart = 1
  End Select
  gridtext.Left = mfg.CellLeft + mfg.Left
  gridtext.Top = mfg.CellTop + mfg.Top
  gridtext.Width = mfg.CellWidth
  gridtext.Height = mfg.CellHeight
  gridtext.Visible = True
  gridtext.SetFocus
End Sub
Private Sub mfg_LeaveCell()
  If gridtext.Visible Then
  mfg = gridtext
  gridtext.Visible = False
  End If
End Sub
   
Private Sub mfg_GotFocus()
  If gridtext.Visible Then
  mfg = gridtext
  gridtext.Visible = False
  End If
End Sub
Private Sub gridtext_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
  Case vbKeyEscape
  gridtext.Visible = False
  mfg.SetFocus
  Case vbKeyReturn
  mfg.SetFocus
  DoEvents
  If mfg.Row < mfg.Rows - 1 Then
  mfg.Row = mfg.Row + 1
  End If
  Case vbKeyDown
  mfg.SetFocus
  DoEvents
  If mfg.Row < mfg.Rows - 1 Then
  mfg.Row = mfg.Row + 1
  End If
  Case vbKeyUp
  mfg.SetFocus
  DoEvents
  If mfg.Row > mfg.FixedRows Then
  mfg.Row = mfg.Row - 1
  End If
  Case vbKeyTab
  mfg.SetFocus
  DoEvents
  If mfg.Row > mfg.FixedRows Then
  mfg.Row = mfg.Row - 1
  End If
  Case vbKeyDelete
  mfg.Text = ""
End Select
End Sub
Private Sub gridtext_KeyPress(KeyAscii As Integer)
  If KeyAscii = vbKeyReturn Then KeyAscii = 0
End Sub
另外我还想问一下,我如何删除指定区域的数据呢?

------解决方案--------------------
Case vbKeyDelete
gridtext = ""
这样就可以了。
------解决方案--------------------
如果楼主只删除一个单元格的数据原来代码就可以实现这个功能 ,但是必须双击选定的单元格,如果改成单击就可以选定单元格可添加如下代码:
Private Sub mfg_Click()
GridEdit Asc(" ")
End Sub

但是这段代码是否会影响其它功能我没有测试,楼主可以自己测试一下。如果要删除一个区域的数据,按目前的方式来做是不行的,因为原来的代码中的操作都是在文本框获得焦点时,而你选中一个区域的数据时并没有让文本框获得焦点,所以文本框无法检测你按下了哪个键,所以不会执行任何代码。