2013-03-26 248 views
2

我們有一個在Win32窗口中託管的WPF窗口。實現是這樣的,當用戶按下CTRL + V時,剪貼板中的文本被粘貼到KeyUp事件中的TextBox中,而不是KeyDown事件中(由於在MFC中託管時受到TextBox控件的限制)。因此我們覆蓋了KeyUp事件來粘貼文本。WPF:TextBox不會在KeyDown(CTRL + V)事件上粘貼文本

但是,在某些機器中,有人發現文本在做CTRL + V 時僅粘貼一次。經進一步調查發現,它被粘貼爲KeyDown(默認窗口行爲),也被粘貼到KeyUp事件(由我們覆蓋)。

想知道爲什麼它只在KeyUp上粘貼,即使在某些機器上和KeyDown和KeyUp的某些機器上?

幫助將不勝感激。

-Nayan

+0

一些更多的細節 現在已經爲KeyDown事件添加了一個處理程序。注意到處理程序被調用了除CTRL + V,CTRL + C ..等其他鍵之外的所有鍵。這裏...處理程序不用於用CTRL鍵按下V和C鍵。 – 2013-03-26 08:19:22

回答

0

我認爲這將取決於哪個控件具有焦點時按CTRL + V。

如果編輯控件有焦點,它會得到一個WM_PASTE通知,默認的WindowProc會將剪貼板內容粘貼到文本框中。

如果另一個控件具有焦點,則需要自己處理CTRL + V以粘貼到編輯控件中。

相關問題