TextBox 上的 Focus() 不起作用
题
我有一个表格 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);
});
不隶属于 StackOverflow