2009年11月2日

[茶包]C#.NET Windows From - RichTextBox Scrolling Hang (控制項捲動卡住問題)

話說,最近正在製作桌面便條紙的版本更新
沒想到意外的遇到了奇怪的 Bug ... orz

只要 RichTextBox 裡面有多行文字,之後使用任何方式捲動
(PageUp, PageDown, 滑鼠左鍵點選捲軸等)
都會造成 CPU 使用率飆到滿,直接就 Hang 住不能動的窘境

寫了這麼久的 C# 還沒遇到過這種撞鬼一般的事情!!
當然,先檢查是否有無限迴圈,或是無出口遞迴等可能 ...
問題是並沒有,再來檢查是否有 自訂 Event 連續被呼叫 ...
也沒有查到,一切都是依照上一版本改編,除了新功能之外
舊的功能理論上應該正常才是,程式碼也都沒有任何異常
RichTextBox 控制項重新拉進去也沒用,這真的是考倒我了
害得我最近吃不好也睡不好(誤)

「乾脆試試看公司的環境吧?」突然有這個念頭
於是就在不同電腦環境下,新開專案,直接丟個 RichTextBox
......疑?很正常啊(汗),真的是見鬼了 =_=
既然乾淨環境運作上是正常的,那一定是新的方法有一個關鍵
地方或是作法,跟以前不一樣囉?我如此想著

找啊找的,總是找不出程式上的異常,正當準備要放棄的時候
想到,該不會是用"拖拉式(Drag and Drop)"控制項的過程中
有什麼設定不一樣的地方 ... ?

突然,我發現了便條紙本身的 Form 多設定了一個透明色鍵值
(TransparencyKey),唯一的不同點,難不成真的是這鍋?!

抱持著學科學,實驗的精神,把 TransparencyKey 拿掉
Boom ! 茶包消滅,RichTextBox 再也不會因為捲動卡住了

...orz

1 則留言:

匿名 提到...

hi~
你好!!我看到這邊文章說您有自己寫便條紙的程式

如果可以的話,小的想看看您怎麼做的行嗎= =""

可以的話,可不可以給小的原始碼看看...因為最近也正在練習做便條紙的程式,但是就不知道怎麼做 冏!!

麻煩能寄到我的信箱嗎!?
a78050@hotmail.com