我們知道,在做Web開發的時候,很多控件可以用來做HTML内容編輯的,Winform開發就相對少很多,不過很多時候,我們在做Winform開發的時候,也是需要處理這樣的場景的。例如發送HTML郵件内容的時候,在給客戶編寫内容豐富的回報意見或者郵件的時候等等,是以有必要做一個支援好HTML格式,支援圖檔插入等豐富内容的控件。 本文就是介紹這麼一個控件,這個控件增加了一些常見HTML格式的工具欄操作,并且改良支援Win7系統下的内容編輯(一般WebBrowser包裝類,在Win7下内容會變得不可編輯),本控件不會有這個問題。另外,一般WebBrowser需要用戶端有Microsoft.MSHTML.dll,這個檔案7M多,一般開發的機器上會有,但普通使用者的電腦就不一定有這個檔案,而且這個檔案很大,非常不适合軟體的部署。本控件使用WindowsLive.Writer.Interop.Mshtml和WindowsLive.Writer.Mshtml兩個小檔案來替代Microsoft.MSHTML.dll這個龐然大物的dll。
我們知道,在做Web開發的時候,很多控件可以用來做HTML内容編輯的,Winform開發就相對少很多,不過很多時候,我們在做Winform開發的時候,也是需要處理這樣的場景的。例如發送HTML郵件内容的時候,在給客戶編寫内容豐富的回報意見或者郵件的時候等等,是以有必要做一個支援好HTML格式,支援圖檔插入等豐富内容的控件。
本文就是介紹這麼一個控件,這個控件增加了一些常見HTML格式的工具欄操作,并且改良支援Win7系統下的内容編輯(一般WebBrowser包裝類,在Win7下内容會變得不可編輯),本控件不會有這個問題。另外,一般WebBrowser需要用戶端有Microsoft.MSHTML.dll,這個檔案7M多,一般開發的機器上會有,但普通使用者的電腦就不一定有這個檔案,而且這個檔案很大,非常不适合軟體的部署。本控件使用WindowsLive.Writer.Interop.Mshtml和WindowsLive.Writer.Mshtml兩個小檔案來替代Microsoft.MSHTML.dll這個龐然大物的dll。
下面是一個在Winform開發架構中用于意見回報的場景,裡面可以使用豐富的HTML格式,可以插入圖檔等操作,如下所示。
打開問題回報出現下面的HTML内容編輯界面

由于我是把回報資訊作為郵件發送的,是以,插入的本地圖檔,也會作為嵌入内容寫入到郵件當中,在郵件内容中插入嵌入圖檔是一個有點技術含量的工作,不同于一般的郵件附件,他是把圖檔位元組寫在郵件的同時,也同時修改郵件内容的圖檔應用為cid:***這樣的路徑格式。收到的郵件如下所示。
由于發送郵件是常見的操作,是以我把它內建在我的公用類庫(詳細參考《公用類庫系列文章》)裡面去了,是以發送郵件(可帶附件、HTML内容帶嵌入圖檔)是一件很輕松的事情,發送郵件的詳細介紹在我前面一篇随筆《厚積薄發,豐富的公用類庫積累,助你高效進行系統開發(12)--- 網絡相關操作輔助類》有具體的介紹,下面摘錄下來強調一下。
1、發送郵件的輔助類 EmailHelper。
實作效果
1) 本輔助類主要是用來友善實作發送郵件操作,可以發送附件、嵌入圖檔、HTML等内容郵件。使用底層SMTP協定指令進行發送,成功率較高。
2)郵件發送可以用在客戶回報,資訊推廣,客戶溝通,員工交流等方面業務需要。
實作代碼
1)輔助類提供的方法源碼如下所示: ..............省略..............
2)輔助類EmailHelper的使用例子代碼如下所示
3)如果使用發送附件、發送嵌入圖檔(正文中有圖檔顯示内容的)方式,則例子代碼如下所示。
其實該控件還可以改造成HTML内容顯示控件,不過由于涉及要将伺服器的圖檔檔案下載下傳并儲存到一個目錄,并修改HTML内容中圖檔的路徑以便進行顯示,修改内容的時候,還得記住那些圖檔是原有的,新增的圖檔才送出到伺服器即可,不過這樣就會搞得比較複雜一點。大家如果有好的建議可以讨論下。
主要研究技術:代碼生成工具、會員管理系統、客戶關系管理軟體、病人資料管理軟體、Visio二次開發、酒店管理系統、倉庫管理系統等共享軟體開發
專注于Winform開發架構/混合式開發架構、Web開發架構、Bootstrap開發架構、微信門戶開發架構的研究及應用。
轉載請注明出處:
撰寫人:伍華聰