2011-06-16 59 views
0

我有一个Textbox1,Label1和一个AcroPDF1。我的目标是使用条码扫描器并扫描材料编号。我在该位置没有可用的键盘或鼠标。条形码扫描仪在最后给出了一个Enter asci。这很好,但它使它进入下一个索引。我尽量不要跳到AcroPDF,但Tabstop已经是假的,但它仍然跳转到PDF。所以我希望能够随时扫描并显示特殊的pdf格式。AcroPDF VBA Tabstop

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) 
If KeyCode = 13 Then 
     If InStr(TextBox1.Value, "_") <> 0 Then 
      TextBox1.Value = Left(TextBox1.Value, InStrRev(TextBox1.Value, "_", , vbTextCompare) - 1) 
     End If 
    Label1.Caption = TextBox1.Value 
    TextBox1.Value = "" 
    AcroPDF1.LoadFile "F:\APPS\Packaging\84260388.pdf" 
End If 
End Sub 

感谢

回答

0

不知道如果我正确地读这篇文章,但一旦PDF加载您要设置焦点回到文本框?如果是这种情况,请在PDF加载后使用TextBox1.SetFocus()方法。这会将光标移回文本框。

+0

我曾尝试过。它不会回到TextBox1。它仍然与PDF。 – Patrik 2011-06-20 12:55:33

0

确实不太清楚如何在激活axAcroPDF控件后将焦点设置回表单。这个问题在this这样的线程中讨论过。有3个解决方案提供,但他们似乎更像黑客,因为axAcroPDF ActiveX控件本身就是一种非常不寻常的行为。我担心(最终)使用这种控制与复杂和/或严重的应用程序不是一个好主意。

+0

我自己终于使用Timer hack在控件激活后返回焦点。在我的情况下,即使控件似乎有一个奇怪的行为,它仍然是显示PDF的最快解决方案 - 将PDF转换为GDI +可管理图像的时间非常重要(我使用ImageMagick COM +组件) – 2012-04-20 15:19:02