[Winform] 自訂 app.config 區段

在撰寫 Windows Form 程式時, 我們時常會在 app.config 中放入一些參數。如果把它們存放在 appSettings 區段中, 那麼我們就可以很方便地使用 ConfigurationManager.AppSettings["MyKey"] 取出。但是, 如果我們要放進去的資料稍為複雜一點, 操作起來就沒那麼直覺。例如, 我們可以將鍵值以 a-XXX, b-XXX 方式命名, 再使用字串處理方式分出群組。一般而言, 我們通常不會在 app.config 中存入大量資料, 也不會存入太複雜的資料 (否則你應該使用更適合的格式檔案, 例如 XML 或 JSON), 更不會進行大量且持續的存取, 所以上述做法是 OK 的。然而, 如果你和我一樣有奇怪的潔癖, 或許你也會覺得上述做法有點 low。我們就是要去找最有彈性的做法 (明明就用不到)...

...繼續閱讀 »

[Winform] 在 RichTextBox 中著色的偷懶小技巧

在寫 Windows Form 時, 如果不花錢的話, 那麼除了 TextBox 這個文字控制項, 就只剩 RichTextBox 可用了。可惜的是, 雖然都是 RichTextBox, Winform 裡的 RichTextBox 卻不像 WPF 的 RichTextBox 那樣可以賦予方便的屬性。因此, 即使只是對 RichTextBox 裡的文字做著色這般簡單的動作, 都不見得容易, 也不直覺。例如, 我需要在 RichTextBox 裡把某些文字以紅色標示; 如果是網頁程式的話...

...繼續閱讀 »

[Winform] 在 Windows Form 中讓背景流動的方法

首先我必須聲明一下, 以下我要介紹的方法雖然並不是百無一用, 而且看起來還算酷炫, 但是我必須承認這可以算是「無用技術」的一項。因為讓背景圖片不斷流動除了無端耗費 CPU 資源之外, 如果設定得不好, 還會讓你的使用者眼花瞭亂, 甚至可能會產生暈車的症狀, 所以小朋友不要亂學, 叔叔有練過才敢這樣做...

...繼續閱讀 »

[Winform] 動態產生下拉式表單的做法、問題與解決

在 Windows Form 中要以動態方式新增/移除選單項目是一件很容易的工作。簡單的講, 我們先在視窗上方加入一個 ToolStripMenuItem (在功能表與工具列中找到 ToolStrip 控制項, 再拉進視窗裡面), 接著, 加入一個 ToolStripMenuItem (假設將該項目命名為 "menuFile"), 然後我們就可以在程式中對它進行操作了...

...繼續閱讀 »

[Winform] 了解並修正 AddString 路徑與原矩形偏移的問題

在 GDI+ 功能中, 如果要在圖片中加上文字, 最簡單的方法就是使用 Graphics.DrawString() 方法。但是 DrawString() 方法固然簡單好用, 它的功能卻十分的不強; 光是想要描出文字的框線, 我們就得採用迂迴的方法才能辦得到, 效果還不見得好。上網查了很久之後, 發現絕大多數同好都建議改用 GraphicsPath.AddString()...

...繼續閱讀 »

[Winform] 復原滑鼠事件造成的非預期慣性滾動問題

這是一個困擾了我一整天的問題。從昨天晚上發現問題開始, 一直到今天下班前才解決, 足足花了十幾個小時在跟這個應該不是問題的問題奮戰著。我並沒有上網尋求答案, 因為我一直以為是自己程式出錯而反覆修改, 但最後卻發現並不是自己的程式有問題, 而可能是 Windows 本身的問題, 亦或是自己對 Windows Application 中滑鼠事件生命週期理解有誤而造成的...

...繼續閱讀 »