1

我有一个表格,TextBox里面有一个。每次文本更改时,我都会使用TextChanged事件来创建 PDF 文件并将其加载到AxAcroPDF同一表单中的 -Object 中。这工作正常,但随后TextBox失去焦点,并且由于某种原因textBox.Focus()加载文件后不起作用。

有没有人知道我可以如何安排您在刷新 PDF 的同时继续打字?

编辑:

我有另一个想法,我创建了一个单独的线程来更新 PDF,并且在TextChanged-event 中我只设置了一个标志。但现在我遇到了一个奇怪的错误

Unable to cast COM object of type 'System.__ComObject' to interface type 'AcroPDFLib.IAcroAXDocShim'.
4

3 回答 3

4

试试这个:

textBox.Select();
textBox.Focus();
于 2012-10-02T08:36:08.863 回答
1

我为自己感到羞耻,我发现了一个非常非常肮脏的黑客,但它有效......我做了以下事情:

当我在 MessageBox 中编写文本时,我会在 TextChange-Event 中重写我的 PDF。在相同的方法中,我存储了具有焦点的控件(在 PDF 对象上调用 LoadFile 时,此控件仍然失去焦点)。现在脏活来了:我实现了一个线程,它不断地将焦点设置到存储在变量中的控件上。在 TextBox 的 Leave-Event 中,我重置了变量,这样其他控件就不会被阻止。

我知道这是一个非常肮脏的黑客,但现在我可以立即用我自己的表单“编辑”一个 pdf,这是一个很好的眼睛;)

感谢所有的帮助!

于 2012-10-02T12:23:33.987 回答
0

我无法让 .Focus() 和 .Select() 工作,所以我使用了 Jquery,它工作得很好。

$(document).ready(function () {
    setTimeout(function () {
        $(".contentWrapper input")[0].focus();
    }, 100);
});
于 2017-12-06T22:13:54.443 回答