小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

::VB大世界 -> 經(jīng)驗(yàn)技巧::

 ShangShujie 2008-06-14
VB 中的打印一直是件比較頭痛的事情。通常大家會(huì)采用兩種方法實(shí)現(xiàn)打印功能,即使用 Printer 對(duì)象和別人制作的打印控件。

如果使用 Printer 對(duì)象需要自己去計(jì)算和控制打印位置,而在 VB中使用 Twip 作為長(zhǎng)度單位的計(jì)算量是非常大的。想想,一毫米就有 56.7 Twip,一頁(yè) A4 紙的寬度是 210 毫米,就有 56.7 × 210 = 11907 Twip,如此大的計(jì)算量,非把頭算暈不可。

如果使用控件,則有兩個(gè)問(wèn)題,一是網(wǎng)上的控件雖多,但往往沒(méi)有詳細(xì)的說(shuō)明文檔,使用的時(shí)候需要摸著石頭過(guò)河;二是網(wǎng)上的通用控件有時(shí)候不能滿足我們寫打印程序的一些特殊要求,如不能設(shè)計(jì)比較復(fù)雜的表格等。

使用 VB 編程的程序員都習(xí)慣把控件往窗體上拖,這也是 VB 易用之所在。于是我們就有一種想法:如果設(shè)計(jì)打印報(bào)表也能這么做該多好?這種想法真的不錯(cuò),而且也的確能夠?qū)崿F(xiàn),因?yàn)? VB 的 Form 對(duì)象提供了 PrintForm 方法。PrintForm 方法會(huì)使用默認(rèn)打印機(jī)打印當(dāng)前 Form 中的可視內(nèi)容,所以我們只需要設(shè)計(jì)一個(gè)合適的 Form,就可以非常容易地打印出理想的效果。

下面,我就以打印個(gè)人簡(jiǎn)歷為例,說(shuō)說(shuō)如何使用 Form 實(shí)現(xiàn)打印以及需要注意些什么問(wèn)題。

新建一個(gè) Standard EXE 工程,將工程名改為 MyPrintForm,默認(rèn)的 Form1 改名為 PrintForm。然后按下表修改其屬性:

BorderStyle

0 - None

Width

10433

BackColor

&H00FFFFFF&

Height

14742

Font

宋體, 小五

 

 

其中,PrintForm 的大小是按 16 開紙的大小設(shè)置的。

然后,使用 Label、Shape 和 Line 控件在 PrintForm 中繪制出個(gè)人簡(jiǎn)歷表格。

個(gè)人簡(jiǎn)歷繪制完成后直接就可以打印,隨便在窗體中放一個(gè)按鈕 Command1,在其 Click 事件中寫兩行代碼即可:

Me.Command1.Visible = False

Me.PrintForm

然而,使用這種方法用于打印實(shí)在有些不正規(guī)。而且,那么大一個(gè) PrintForm 顯示在屏幕上,既不能滾動(dòng)也不能改變位置,實(shí)在有些難受——現(xiàn)在是該使用 MDIForm 的時(shí)候了。添加一個(gè)新的 MDIForm,命名為 MDIFormMain;將 PrintForm 的 MDIChild 屬性改為 True;這時(shí)候運(yùn)行程序,是不是非常漂亮的預(yù)覽效果?如果運(yùn)行的時(shí)候 PrintForm 沒(méi)有顯示出來(lái),請(qǐng)?jiān)O(shè)置 MDIFormMain 的 AutoShowChldren 屬性為 True。

現(xiàn)在我們只需要為 MDIFormMain 添加菜單或者按鈕以便選擇打印。添加菜單的方法相對(duì)比較簡(jiǎn)單,所以就添加一個(gè)菜單吧:名稱 MenuPrint,標(biāo)題為“打印(&P)”。不過(guò)菜單的代碼當(dāng)然不會(huì)還是 Me.PrintForm 了,應(yīng)該改為

Me.ActiveForm.PrintForm

至此,簡(jiǎn)單的打印功能已經(jīng)完成了。但是對(duì)于個(gè)人簡(jiǎn)歷表格,你是寧愿填好了再打印還是打印好了再填呢?用慣了計(jì)算機(jī)打印的人恐怕都不太喜歡動(dòng)筆,所以,如果能直接在 PrintForm 上填寫內(nèi)容,再將填好的表格打印出來(lái)就更好了。

要辦到這一點(diǎn)并不難,只需要在每個(gè)需要填寫內(nèi)容的地方放上一個(gè) TextBox 按控件即可,當(dāng)然,這個(gè)控件要設(shè)置一下:

Appearance

0 - Flat

BorderSytle

0 - None

然后記得清空它們的 Text 屬性,放適當(dāng)?shù)恼{(diào)整位置和大小。

再打印一次試試,結(jié)果并不如想象的那么好:TextBox 中的文本不是按矢量圖打印的,而是按位圖打印的,所以字體看起來(lái)非常不光滑。唯一的解決辦法就是在放置 TextBox 的地方,放置一個(gè)同樣大小同樣位置 Label 控件,并使之置于 TextBox 之下。然后修改打印菜單的 Click 事件:

With Me.ActiveForm

Label1.Caption = TextBox1.Text

TextBox1.Visible = False

……

.PrintForm.

End With

從代碼可以看出來(lái),就是把每個(gè) TextBox 的 Text 值賦予對(duì)應(yīng)的 Label 的 Caption 屬性。然后再把這些 TextBox 隱藏掉??纯矗@次打印出來(lái)是不是非常令人滿意了!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多