国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

發布一個自己寫的PrintPreviewControl自定義控件,支持鼠標滾輪,源代碼下載

2019-11-18 17:04:10
字體:
來源:轉載
供稿:網友

先說一下上次發布的 “ 發布一個支持大量文本打印的PRintDocument派生對象,公開源代碼”
的文章,我發布了一個繼承與System.Drawing.Printing.PrintDocument的對象,這個對象支持從文件流和文本字符串內生成打印作業文檔,當時我沒有仔細測試,發現其中有一個很大的邏輯bug。

bug的表現是假如你使用字符串賦值的辦法生成對象實例,那么打印預覽的時候你會驚奇的發現預覽的時候文檔內容打印了兩遍。而我后來才發現這個問題。

經過查找,我發現了原因,但這個原因很奇妙。
原理是,我為了一次讀取一行文本,我使用了System.IO.StringReader類作為讀取器。而它的構造函數就是傳遞進來的保存文本內容的字符串,然后使用 StringReader.ReadLine() 方法來讀取文本,生成打印的內容。

但是我必須要實現一個機制,這個機制用來檢查讀取器是否讀取到最后的內容,而StringReader.Peek()方法就是檢測后面是否有內容,如果沒有內容就返回-1值。而經過我的測試,無論是否怎樣檢測,都不返回-1,而是把內容輸入兩遍后才返回-1,這樣就導致同樣的內容顯示了兩遍。

這個bug已經修改,我通過其他的辦法修改了檢測手段,這次無需打兩次內容了。請下載的各位重新下載一次。


現在開始說PrintPreveiwControl控件。

首先要提醒大家注意的是,它是一個自定義windows 控件,而不是新的打印預覽窗口。它就是打印預覽窗口中顯示打印預覽的那部分內容,如果大家要使用的話,必須建立一個windows窗體,然后使用它既可。

說實話,微軟在.net中自帶的打印預覽窗口非常不好,即不好看,也不好用,所以微軟就提供了一個System.Windows.Forms.PrintPreviewControl控件,而這個控件也不太好,主要是不支持鼠標滾輪,另外最重要的就是不支持打印頁面計數,而打印預覽時的可用頁面數目是打印預覽窗口中“上頁”,“下頁”這樣的按鈕所必須的屬性。

所以我使用了Reflector反編譯了微軟的PrintPreviewControl控件,使用它的原始代碼并添加了“OnMouseWheel”事件處理程序,而OnMouseWheel就是專門處理鼠標滾輪滾動時的操作的。同樣公布源代碼。

OnMouseWheel方法內我添加了大量注釋,有要處理鼠標滾輪的朋友可以根據這個代碼的原理來發揮。

下載:單擊此處下載

http://www.survivalescaperooms.com/submaie/archive/2006/08/11/474568.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 怀集县| 汝城县| 松原市| 襄汾县| 光泽县| 广德县| 金阳县| 兴和县| 通化市| 亳州市| 名山县| 霍山县| 万全县| 泗水县| 中山市| 墨脱县| 平昌县| 乐清市| 河南省| 新疆| 渭南市| 连州市| 康平县| 论坛| 龙门县| 周至县| 湘西| 庆城县| 和顺县| 西乡县| 临泽县| 轮台县| 洛南县| 连平县| 蒙阴县| 日土县| 朝阳市| 惠东县| 会宁县| 萍乡市| 龙井市|