想用printform方法打印窗体中,部分控件。
如:只打印text控件的值,而不打印label控件,而且要求打印的位置要于窗体上所放控体的位置要一致。

解决方案 »

  1.   

    免费源代码任你选************************************
    *  http://sky300.com:88/hongsong/  *
    ************************************里面有你想要得冬冬哦!不看会后悔的哦!
      

  2.   

    Private Sub PrintFrm()
        On Error Resume Next
        Dim o As Object, L As TextBox
        Load Form1
        For Each o In Form1.Controls
            If TypeName(o) = "TextBox" Then
                Set L = o
                If L.Index <> 0 Then
                    Printer.CurrentX = L.Left
                    Printer.CurrentY = L.Top
                    Set Printer.Font = L.Font
                    Printer.Print L.Text
                End If
            End If
        Next
        Printer.EndDoc
        Unload Form1
    End Sub
      

  3.   

    现在有又一个问题,能不能只打印窗体里一个pic容器中的部分控件呢,也是按控件在pic容器中的位置打印,只要text控件里的内容!!
      

  4.   

    调用PrintForm 之前,先把控件隐藏!~
      

  5.   

    我也在问类似的问题,但是好像各位说得都不是我们想要的,printform打印质量太差,不想使用,在msdn上只找到了很笼统的几句话:“使用 Printer 对象的主要缺点,是取得最佳结果所需要的代码量较大。在 Printer 对象中打印位图也要花费时间,因此会降低应用程序的性能” 
        还有“也许需要应用程序打印一个或多个窗体(连同窗体上的信息),尤其是当窗体的设计用于发票或时间表之类的打印资料时,更是如此。要做到这一点,最简单的途径是用 PrintForm 方法。在 Printer 对象中使用 Print 和图形方法,可在激光打印机上获得最佳效果。但要注意,使用 Printer 对象之前需要做较多准备,因为在打印之前要在 Printer 对象中重建窗体。在 Printer 对象中重建窗体也可能需要重建下列内容: 窗体的轮廓,包括标题和菜单栏。
    控件和它们的内容,包括文本和图形。
    直接应用于窗体的图形输出方法,包括 Print方法。 
    重建 Printer 对象中的元素的扩展工作,取决于应用程序和所需打印窗体内容的多少。”
    问题是:如果是重建,是不是只是用printer 的print和图形方法来重建每个控件元素的文本或图形?
      

  6.   

    你将LABEL设置VISIBLE=FALSE就是了