TextBox上的Focus()不起作用

时间:2012-10-02 08:25:49

标签: c# winforms pdf axacropdf

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

有没有人想过如何安排您在刷新PDF时可以继续打字?

修改

我有另一个想法,我做了一个单独的线程,我更新PDF和TextChanged - 事件我只设置了一个标志。但现在我得到一个奇怪的错误

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

3 个答案:

答案 0 :(得分:4)

试试这个:

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

答案 1 :(得分:1)

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

当我在MessageBox中写文本时,我在TextChange-Event中重写了我的PDF。在同一方法中,我存储具有焦点的Control(当在PDF-Object上调用LoadFile时,此控件仍然失去焦点)。现在肮脏的工作来了:我实现了一个Thread,它不断地将焦点设置到存储在变量中的Control。在TextBox的Leave-Event中,我重置了变量,因此其他控件不会被阻止。

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

感谢您的帮助!

答案 2 :(得分:0)

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

$(document).ready(function () {
    setTimeout(function () {
        $(".contentWrapper input")[0].focus();
    }, 100);
});