我的表单中包含TextBox
。每次文本更改时,我都会使用TextChanged
事件创建PDF文件并将其加载到同一表单中的AxAcroPDF
- 对象。这样可以正常工作,但是TextBox
失去焦点,并且由于某种原因,加载文件后textBox.Focus()
不起作用。
有没有人想过如何安排您在刷新PDF时可以继续打字?
修改
我有另一个想法,我做了一个单独的线程,我更新PDF和TextChanged
- 事件我只设置了一个标志。但现在我得到一个奇怪的错误
Unable to cast COM object of type 'System.__ComObject' to interface type 'AcroPDFLib.IAcroAXDocShim'.
答案 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);
});