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

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

编辑:

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

Unable to cast COM object of type 'System.__ComObject' to interface type 'AcroPDFLib.IAcroAXDocShim'.
有帮助吗?

解决方案 2

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

当我在 MessageBox 中写入文本时,我在 TextChange-Event 中重写我的 PDF。在相同的方法中,我存储具有焦点的控件(当在 PDF 对象上调用 LoadFile 时,该控件仍然失去焦点)。现在肮脏的工作来了:我实现了一个线程,它不断地将焦点设置到存储在变量中的控件。在文本框的离开事件中,我重置了变量,以便其他控件不会被阻止。

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

感谢您的帮助!

其他提示

试试这个:

textBox.Select();
textBox.Focus();

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

$(document).ready(function () {
    setTimeout(function () {
        $(".contentWrapper input")[0].focus();
    }, 100);
});
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top