Option Explicit'//怎样让MSHFlexGrid支持ctrl+c,ctrl+v功能? Private Sub MSHFlexGrid1_KeyDown(KeyCode As Integer, Shift As Integer) if shift = vbCtrlMask then if keycode = vbkeyC then Clipboard.settext MSHFlexGrid1.text elseif keycode = vbkeyD then MSHFlexGrid1.text = Clipboard.gettext end if end if End Sub '//让MSHFlexGrid的单元格可写 Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer) 'Provides manual data entry capability to flexgrid With MSFlexGrid1 Select Case KeyAscii Case vbKeyReturn If .Col + 1 <= .Cols - 1 Then .Col = .Cols - 1 ElseIf .Row + 1 <= .Rows - 1 Then .Row = .Row + 1 .Col = 0 Else .Row = 1 .Col = 0 End If Case vbKeyBack If Trim(.Text) <> "" Then .Text = Mid(.Text, 1, Len(.Text) - 1) End If Case Is < 32 Case Else If .Col = 0 Or .Row = 0 Then Exit Sub Else .Text = .Text & Chr(KeyAscii) End If End Select End With End Sub
Clipeboard对象,所以可用CopytoClipeboard来拷贝文字到剪贴板
可惜VB很不熟啊,该怎样解决?!
怎么csdn这么冷清了啊
还是不要做程序员了吧!
Private Sub MSHFlexGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
if shift = vbCtrlMask then
if keycode = vbkeyC then
Clipboard.settext MSHFlexGrid1.text
elseif keycode = vbkeyD then
MSHFlexGrid1.text = Clipboard.gettext
end if
end if
End Sub
'//让MSHFlexGrid的单元格可写
Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)
'Provides manual data entry capability to flexgrid With MSFlexGrid1 Select Case KeyAscii
Case vbKeyReturn
If .Col + 1 <= .Cols - 1 Then
.Col = .Cols - 1
ElseIf .Row + 1 <= .Rows - 1 Then
.Row = .Row + 1
.Col = 0
Else
.Row = 1
.Col = 0
End If
Case vbKeyBack
If Trim(.Text) <> "" Then
.Text = Mid(.Text, 1, Len(.Text) - 1)
End If
Case Is < 32
Case Else
If .Col = 0 Or .Row = 0 Then
Exit Sub
Else
.Text = .Text & Chr(KeyAscii)
End If
End Select
End With
End Sub
http://community.csdn.net/Expert/topic/3019/3019900.xml?temp=.6094171
http://community.csdn.net/Expert/topic/2671/2671389.xml?temp=.4865534
缺点就是没办法支持键盘和鼠标事件了
比如键盘的上下左右键和鼠标的滚轮,
得自己处理,很麻烦!
to leolan(史留香) :
kinlin(小林) :
呵呵,我自己老想处理消息,结果老是在WM_PASTE,WM_CUT,WM_PASTE里打转,
这下好了,下午试试,成功了就马上散分!
http://community.csdn.net/Expert/topic/3106/3106615.xml?temp=.1951105http://community.csdn.net/Expert/topic/3106/3106828.xml?temp=.7735407http://community.csdn.net/Expert/topic/3108/3108592.xml?temp=.7158167