2010-07-25 79 views
2

我有一個WPF項目(創建DLL)。添加的文本框(或列表框)只會接受,COPY,PASTE,DELETE和BACKSPACE.I不知道文本框爲什麼會出現這種情況。該系統接收的所有事件(KEYUP,KEYDOWN,PREVIEWKEYUP,PREVIEWKEYDOWN的,但如果字符類型不會更改文本。無法寫入文本框wpf

TextChanged事件只爲刪除,粘貼火災等

的文本框允許且不是隻讀。

任何幫助,將不勝感激。 感謝,它倆。

+0

您好塔利亞 - 從您的問題是不清楚你是否有這種行爲神祕獲得的文本框,並且「無法在文本框wpf中寫入」是問題,或者你想創建這樣的文本框,並希望得到一些關於如何。請你澄清一下嗎? – Lunivore 2010-07-25 07:33:31

+0

我不知道爲什麼文本框有這種行爲。我想寫在文本框旁邊。 – talia 2010-07-25 07:52:30

+0

你能否舉一個你如何實際創建它們的例子。 – n535 2010-07-25 07:56:47

回答

8

添加此:

Window window1 = new Window(); 
System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(window1); 
window1.Show(); 

應修復的bug。

也增加WindowsFormsIntegration程序的參考。

感謝大家!

+0

你沒有提及WinForms集成涉及! – benPearce 2010-07-27 21:20:18

+0

沒有與WinForms集成...這是wpf項目。儘管在解決方案中還有其他WinForms項目...... – talia 2010-07-28 06:14:59

0

我有過這樣的情況之前,我唯一的解決方案是創建一個新的解決方案/項目和整個複製代碼。

很奇怪!

+0

我確實按照你說的去做,並且它沒有幫助。不知道該怎麼辦... – talia 2010-07-26 11:58:07

+0

如果你創建一個新的解決方案和空項目,你仍然會得到相同的結果嗎? – benPearce 2010-07-26 21:19:33

+0

我打開了一個新的wpf應用程序,然後確定。但我的項目是wpf用戶控制庫。我應該創建一個dll。無論如何,創建一個新的解決方案,並複製everyhing,因爲它有很多項目。 還有另外一種方法嗎?謝謝 – talia 2010-07-27 05:25:05

0

我有這個相同的問題,然後意識到我已經處理父窗口上的KeyDown事件(也設置e.Handled爲true)。這實際上阻止了任何子控件看到KeyDown事件。