2012-10-02 124 views
1

我有一個其中包含TextBox的表單。每次文本更改時,我都使用TextChanged事件來創建PDF文件並將其加載到同一表單中的AxAcroPDF-Object。這工作正常,但然後TextBox失去了重點,出於某種原因,加載文件後textBox.Focus()不起作用。TextBox上的焦點()不起作用

有沒有人想法我可以安排,你可以繼續打字,而刷新PDF?

編輯:

我有另外的想法,我犯了一個單獨的線程在那裏我更新PDF並在TextChanged -event我只設置一個標誌。但我現在得到一個奇怪的錯誤

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

我想你應該在設計時將TextBox實例的.SelectedControl設置爲TextBox實例。你不能在表單加載器中設置焦點控件(如果我沒有記錯的話)。對不起,我不確定屬性名稱,可能是.FocusedControl或其他。 – TheBlastOne

+0

文本框控件託管在組框,面板或任何其他容器內嗎? –

+0

如何加載文件?查找文件完成加載時觸發的某種事件,然後設置焦點。否則,請嘗試使用計時器。 –

回答

1

我好慚愧,我發現了一個非常,非常骯髒的黑客,但它的工作原理... 我做的以下內容:

當我在MessageBox中寫入文本時,我在TextChange-Event中重寫了我的PDF。在同一個方法中,我存儲具有焦點的控件(當調用PDF對象上的LoadFile時,此控件仍然失去焦點)。而現在骯髒的工作來了:我實現了一個線程,不斷設置焦點到存儲在變量中的控制。在文本框的離開事件中,我重置變量,使其他控件不會被阻止。

它的一個非常骯髒的黑客我知道,但是現在我可以即刻「編輯」與我自己的形式,這是一個很好的美化包一個pdf)

感謝所有幫助!

4

試試這個:

textBox.Select(); 
textBox.Focus(); 
+0

我已經試過這個,它不起作用 – SaschaW

0

我無法使用.Focus()和.Select()來工作,所以我使用了Jquery,它的工作原理非常完美。

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