vsflexgrid  控件限定输入的代码?  
 
 
要求:  
 
           共  6  列。第  0列  和第  1行(即横竖表头)不许编辑;第1-4  列只能数数字;第5  列只能数  字母;输入不符合上述要求时,提示错误,并不改变原单元格内的值!  
 
我试着用了以下  5    个  事件,但没成功,到底该用哪个?  
 
Private  Sub  VSFlexGrid1_KeyDown(KeyCode  As  Integer,  Shift  As  Integer)  
     
   Dim  X  As  Long  
   Dim  Y  As  Long  
     
   With  VSFlexGrid1  
       X  =  .Col  
       Y  =  .Row   
       ....  
      end  with  
 end  sub  
 
Private  Sub  VSFlexGrid1_CellChanged(ByVal  Row  As  Long,  ByVal  Col  As  Long)  
     ''MsgBox  "cellchangede"  
         
End  Sub  
 
Private  Sub  VSFlexGrid1_KeyDownEdit(ByVal  Row  As  Long,  ByVal  Col  As  Long,  KeyCode  As  Integer,  ByVal  Shift  As  Integer)  
   MsgBox  "keydownedit"  
End  Sub  
 
Private  Sub  VSFlexGrid1_KeyPress(KeyAscii  As  Integer)  
   MsgBox  "keypress"  
   MsgBox  KeyAscii  
       
End  Sub  
 
Private  Sub  VSFlexGrid1_KeyPressEdit(ByVal  Row  As  Long,  ByVal  Col  As  Long,  KeyAscii  As  Integer)  
   MsgBox  "keypressedit"  
End  Sub  

解决方案 »

  1.   

    终于找到办法了,自己回答自己的问题:)Private Sub VSFlexGrid1_KeyPressEdit(ByVal Row As Long, ByVal Col As Long, KeyAscii As Integer)
      
      Select Case KeyAscii
        Case 8            ''退格键
        Case 13           ''回车键
        Case 46           ''小数点
        Case 48 To 57     ''数字键
        Case Else
            Beep          ''报警声
            KeyAscii = 0  ''输入为空
      End Select
      
    End Sub还有问题:      我只是做到了在 vsflexgrid 单元格中只输入数字和小数点!      如何做到 1-3 列限制 3为长度; 4-5 列限制4位长度,并保留一位 小数?
      

  2.   

    还需解决的问题:      我只是做到了在 vsflexgrid 单元格中只输入数字和小数点!      如何做到 1-3 列限制 3为长度; 4-5 列限制4位长度,并保留一位 小数?
      

  3.   

    到这看,有你的答案http://community.csdn.net/Expert/topic/4106/4106490.xml?temp=.6115839
      

  4.   


    谢谢 bee6803(欢笑人生) 的答复!
      

  5.   


        在vsflexgrid8 中第 1,3,5 列允许输入负数,也就是说第一位可以出现负号“-”。    请问:
      
            如何限制编辑指定列时允许输入“-”号,而且只能出现在第一位上。