我們知道,Web開發上有很多HTML的編輯控件,如FCKEditor、CKEditor、kindeditor等等,很多都做的很好,而雖然Winform里面有WebBrowser控件,但是默認這個控件是不允許編輯內容的,可以顯示網頁而已。Winform開發里面,有些使用RichTextBox控件來編輯HTML,也有一些結合WebBrowser控件來實現內容的編輯,其中我覺得做的最好的應該是Zeta HTML Edit Control(http://www.codeproject.com/Articles/43954/ZetaHtmlEditControl),這個控件是在CodeProject上開源公布的,同時也在GitHub上有一個項目的維護(https://github.com/UweKeim/ZetaHtmlEditControl)。本文主要介紹這個控件的使用,以及對其進行一些資源的中文漢化工作,使得我們在實際使用中更方便,並附上修改過的控件源碼,希望大家有所收益。
1、控件的界面效果
控件默認很多工具欄和菜單,都是英文的,它的默認效果如下所示。
對其所有英文的菜單、工具欄、對話框、提示內容等資源進行中文化后,並在工具欄中增加插入圖片、打印功能后,界面如下所示。
2、控件的使用
控件的一些功能是可以通過配置屏蔽或者顯示的,默認它的初始化代碼如下所示。
htmlEditUserControl1.Configure(new HtmlEditControlConfiguration{AllowFontChange = true, AllowEmbeddedImages=true, AllowPrint = true}); htmlEditUserControl1.IsToolbarVisible = true;
AllowFontChange 如果設置為True,可以在工具欄出現字體大小的設置內容。
AllowEmbeddedImages,可以把從剪切板里面的圖片轉換為Base64的字符串的字符串內容,放到HTML控件里面。
AllowPrint是可以打印的功能。
控件可以通過幾種方式進行HTML的賦值的,如下所示。
const string s = @"<P><b>Some tests</b></P><p>Random content. <font color=green>Please edit</font>.</p><p>Use right-click for options.</p>"; htmlEditControl1.DocumentText = s;
或者
const string s = @"<P>Click the buttons below to set different texts. German Umlaute: ???????</p>"; htmlEditControl1.SetDocumentText(s, @"C:\", true);
控件的工具欄可以根據需要隱藏或者顯示
htmlEditUserControl1.IsToolbarVisible = ToolbarVisibleCheckBox.Checked;
3、控件的存在問題
這個控件在使用過程中,發現有一些小問題。
1)必須對控件的DocumentText賦值,才能獲取HTML的內容,否則在控件中輸入內容后,通過代碼獲取到的DocumentText是空的。
htmlEditUserControl1.HtmlEditControl.DocumentText = "伍華聰的測試內容";
2)控件的HtmlEditControl對象在設計的時刻不出現在只能提示里面,但是使用沒問題,很奇怪。
4、對控件進行漢化后,整個控件的源碼
對控件全面進行了中文化修改,方便我們日常的使用。
控件下載地址如下:http://files.cnblogs.com/wuhuacong/ZetaHtmlEditControl.rar