工作學習筆記——comboBox搶佔焦點問題,以及工作學習的想法

  .Net快速開發很便利,但有時總會碰到一些不痛不癢的小問題,讓人無從下手解決。比如這個斷斷續續折磨了我好幾天的comboBox搶佔焦點問題。

  窗體上有一個comboBox,還有一些其他控件也需要接收鍵盤輸入。在沒有操作comboBox之前,一切都是正常的,鍵盤事件流到了我預設的窗體按鍵事件處理函數裏。但是,只要操作了comboBox,似乎它以後就獨佔了輸入焦點,無論是窗體還是其它控件,都無法再接到按鍵事件。

  我嘗試了一些方法,包括使用窗體的KeyPreview、WndProc處理函數,使用focus()將焦點設給其他控件等,總是不能完美解決。感到可能和win form的UI消息傳遞機制有關,在MSDN上看了一些文章又言之泛泛,深入一些的介紹不知道去哪裏找。直到我換了幾個英文搜索關鍵詞,在stackoverflow上掃到了這個帖子上的一條語句


 "this.ActiveControl = null;


  一切恢復了正常,只是我仍然雲裏霧裏,不能確切知道這條語句背後的道理。

  

  這次艱辛的解決問題的過程讓我有了一些想法:

1.stackoverflow真是個好網站,好多問題在它上面都有明確清晰的答案(別處還找不到另外靠譜的)。只是我們要習慣多用google,多用英文搜索詞。其實對於程序員來說,這並不困難,控件名稱、函數名稱、錯誤關鍵字,這些英文關鍵字都是我們平時工作中不得不面對的。


2.多嘗試、多想方法,不要在一條路上耗費太多時間。在寫這篇文章的時候,我又想到可以放幾個文本框到窗體上,看看和comboBox並存時,焦點能不能切換。常理告訴我們,應該是可以的。這起碼會引出另外一些思路。


3.要想用好一樣東西真是很難,尤其是規模大到windows這種程度。我可以說,用一兩年時間精通了BREW技術,知其然也知其所以然。但是windows,恐怕需要3~5年。剛工作的時候,可以有大把的時間學習鑽研。但是幾年之後,當你肩上的擔子越來越重,而面對的問題的規模的增長速度,超出了能力的增長速度,又該如何是好呢?我現在的狀況是,很多問題,都需要靠互聯網搜索來解決。而網上的答案,很多時候只是一時一地的辦法,並不能讓你明白背後的道理。


4.我現在工作中處理的問題,很多前人已經處理過了。我們要花多少精力來重走別人走過的路,要不要抄捷徑,什麼時候可以走自己的路。


5.如果真的想鑽研技術,再過個3~5年,我想我也可以瞭解windows,和其他一些現在看來巨大的東西的來龍去脈,不再有這些恐慌。做個受人尊敬的,能解決問題的工程師。但是要先搞清楚自己的目標,是要成爲一個能工巧匠,還是別的什麼角色。

發佈了56 篇原創文章 · 獲贊 26 · 訪問量 22萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章