当我将form的keypreview为true时,
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF1 Then
command1_click
End Sub
private sub command1_click
text1.text =""
text1.setfoucs
end sub
第一次装载窗体,光标在文本框里闪烁,没有问题
当运行完此代码后,光标却在文本框里不闪烁,无法输入。
帮帮忙这是怎么回事?为什么?
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF1 Then
command1_click
End Sub
private sub command1_click
text1.text =""
text1.setfoucs
end sub
第一次装载窗体,光标在文本框里闪烁,没有问题
当运行完此代码后,光标却在文本框里不闪烁,无法输入。
帮帮忙这是怎么回事?为什么?
Me.KeyPreview = True
End Sub
看看可以吗?
把上面的代码加入就可以了
If KeyCode = vbKeyF1 Then
command1_click
End If
End Sub
Private Sub command1_click()
Text1.Text = ""
Text1.SetFocus
End Sub
你用这个代码看看
你if了以后end if都没有
这个才是光标
他已经设置了
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF1 Then
command1_click
end if
End Sub
private sub command1_click
text1.text =""
text1.setfocus
end sub
我试过,代码没有问题了。可是第一次是没有问题,就是按了F1后,光标在文本框里不闪烁。
能输入,我输入“12345678”,结果文本框里只出现“2345678”少了“1”不知道为什么光标不闪烁?
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF1 Then
command1_click
End If
End Sub
Private Sub command1_click()
Text1.Text = ""
Text1.SetFocus
End Sub
是没有问题的
应该还有其它的代码,否则不会出现此问题
Cn.BeginTrans '启动事务
errno = SaveFiles
Select Case errno
Case -2147217864
Do While errno = -2147217864
errno = SaveFiles
intdo = intdo + 1
If intdo = 100 Then
Cn.RollbackTrans '回滚事务
Screen.MousePointer = vbDefault
IniScnA
txtBarCode.SetFocus
txtBarCode.Text = ""
MsgBox "更新错误,发货不成功,请重试!! : " & Err.Number & Chr(13) & Chr(13) & Err.Description, vbExclamation, "更新有误"
Exit Sub
End If
Loop
Case 0
Case Else
Cn.RollbackTrans
MsgBox "更新错误,发货不成功,请重试!! : " & Err.Number & Chr(13) & Chr(13) & Err.Description, vbExclamation, "更新有误"
Exit Sub
End Select
Cn.CommitTrans '结束事务
Screen.MousePointer = vbDefault
IniScnA
txtBarCode.Text = ""
txtBarCode.SetFocus
'***************************************************
会不会这个问题与事务有关呢?
很有可能是与此函数有关
最好还是单步执行看看有没有出错的语句还有就是
你的Cn.BeginTrans '启动事务与Cn.CommitTrans '结束事务及Cn.RollbackTrans '回滚事务之间似乎没有更新数据,为何要用此语句
txtBarCode.Text = "1"
txtBarCode.Text = ""
txtBarCode.SetFocus
改成这样看下
你说第一个字输入不进去很可能是有输入还在缓冲区的原因
你强制刷一下看看
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
里面
if...end if外面
加
txtBarCode.SetFocus