使用 new FontFamily 時因字型不存在或非 TrueType 而造成 Exception 的問題

當我們要使用某種字型, 必須採用以下的方式進行: new Font(new FontFamily(fontName), 14f, FontStyle.Regular); 上面 fontName 是指輸入的字型, 例如 Arial。但是當你把程式部署到客戶端之後, 會有一個你可能想像不到的問題, 那就是, 如果對方機器上並未安裝此字型, 這時會產生一個 runtime 的 Argument Exception...

...繼續閱讀 »

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

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

...繼續閱讀 »

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

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

...繼續閱讀 »

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

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

...繼續閱讀 »

[入門] .NET 自訂型別

我可以理解為什麼我老婆開了十年的同樣一部車, 都不知道原來在 N 檔和 D 檔之間切換可以不必去按那個安全鈕; 但是我卻無法理解為什麼有一個已經寫了好幾年 .NET 程式的人, 在這輩子中竟然沒有寫過任何一個自訂型別...

...繼續閱讀 »

萬眾矚目的 HTML 5

如果我們往前回顧歷史, HTML 4 是在 1997 年底制定的, 我們現在普遍在用的 HTML 4.01 發表於 1999 年底。此外, XHTML 1.0 發表於 2000 年初, XHTML 1.1 則發表於 2001 年中。距今差不多十幾年的時間當中, 我們並沒有看到太多革命性的改變...

...繼續閱讀 »

[jQuery] jQuery 私人筆記本

本來是不打算寫任何關於 jQuery 的入門文章了, 因為這種資訊在網路上俯拾皆是, 甚至都泛濫了。然而在實際使用時, 發現 jQuery 的精簡語法在彼此之間也實在太相像了, 如果不自己做個筆記以供隨時速查, 總是記不住。所以, 還是寫個一篇或是幾篇拿來放著, 想查閱的時候也方便...

...繼續閱讀 »

TDD 的可行與不可行

上個禮拜參加了彭靖灝老師的研討會(軟體工程從自己做起-軟體工程之千山我獨行), 今天又拜讀了彭老師的「習慣影響思維」。他在研討會及文章中一再強調測試先行的理念, 又深感軟體工程師對於 TDD (Test-driven Development) 的疑慮或者排斥, 不由得心生「千山我獨行」之感...

...繼續閱讀 »

[Regex] 進階群組建構

當你可以掌握 Regex 的基本原則之後, 如果你真的把它運用在生活中或工作上, 我相信你很快就會發現那些基本技巧的不足之處。舉個例子, 你可能已經寫好一個樣式 (如 "(?\b\d{7,8}\b)" ) 來從 "12341234 1111222" 字串中擷取出電話號碼。然而, 你可能在某天發現來源字串出現了奇怪的字: "12341234 (02)12345678", 此時, 你就非得修改原本的樣式...

...繼續閱讀 »

沒有名為 'title' 的公用屬性

這是一個令人摸不著頭緒的錯誤。我有幾個持續開發的網頁, 由於裡面有部份重複的功能, 所以我另外寫了一個繼承 Web.UI.Page 的類別, 把前述幾個常用的功能寫在裡面, 然後再讓那些網頁來繼承這個類別。如下範例...

...繼續閱讀 »

讀寫 INI 檔案

ASP.NET 寫久了, 早就習慣使用 Resource 檔案或一般 XML 檔案儲存設定, 反而不會考慮使用古早的 INI 檔案。但最近被問到一個問題: 「如果以前的程式都使用 INI 檔, 要如何跟人家一樣呢?」...

...繼續閱讀 »