描述:開發中完成了一個相似於Word的懸浮工具欄功能,選中文本以後能夠自動彈出一個工具欄。能夠修改字體、字體大小等功能,問題來了,我發現當去進行操做的時候本來選中的RichTextBox的內容的顏色會變爲白色,其實仍然是選中狀態,但是顏色消失了。查找了大量資料都認爲是LostFocus搞的鬼,通過屢次試驗得出一個結論,那就是重寫下LostFocus的事件。ide
開工:上文中提到認爲是LostFocus搞的鬼,RichTextBox有兩個LostFocus,OnLostFocus和OnLostKeyboardFocus,二者的區別是前者爲鼠標的焦點,後者爲鍵盤的焦點。可是在測試中發現只會進入後者,而不會進入前者,因此仍是比較詫異的,詫異歸詫異,咱們繼續。工具
上代碼:測試
protected override void OnLostKeyboardFocus(KeyboardFocusChangedEventArgs e) { e.Handled = true; }
好吧,只有這麼多代碼,就是截獲了OnLostKeyboardFocus事件便可,可是這樣會有一個不太友好的結果就是選中色的丟失事件木有了。我會告訴你,點擊下RichTextBox的內部便可消失嗎,哈哈,美中不足就是點擊其餘的焦點不能消失,你們斟酌吧。字體