我的一个窗体上包含一个FLEXGRID控件,和两个按钮,我想只报FLEXGRID控件和它里面的数据打印出来,那两个按钮就不打印了,我用的是printForm方法打印的。请问我需要如何设置才能实现我说的功能呢?

解决方案 »

  1.   

    你是想打印这个界面,还是想打印FLEXGRID表中的数据呀.如果是想打印表中的数据,你这样是不行的.数据多的话,只能显示一部分.
      

  2.   

    可以呀,设置FLEXGRID控件的left和top属性为0,窗体的宽度和高度为FLEXGRID控件的宽度和高度就可以了
      

  3.   

    自己作打印是比较麻烦的,还是用报表吧;
    可以导出到Excel,使用Excel的打印功能~
      

  4.   

    我是想打印FLEXGRID里面的数据连带FLEXGRID的格式,下面的按钮是“打印”和“关闭”如果像viena(维也纳nn-实心木头人) 说的那样,客户不就无法操作打印了吗?
      

  5.   

    那如果我把这个FLEXGRID控件放到FRAME控件里面,然后用printer集合来打印frame控件里的内容可以实现吗?
      

  6.   

    晕,我的意思是,点了打印按钮以后,用代码执行我说的操作,执行printForm以后,再改回原来的样子/*那如果我把这个FLEXGRID控件放到FRAME控件里面,然后用printer集合来打印frame控件里的内容可以实现吗*/
    不知道你在说什么~
      

  7.   

    如果你一定要这样的话,就用BitBlt将那个表画到一个picturebox控件里,然后再打印picturebox
      

  8.   

    Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As LongPrivate Sub Command1_Click()
        Picture2.AutoRedraw = True
        Picture2.Width = FLEXGRID.Width
        Picture2.Height = FLEXGRID.Height
        BitBlt Picture2.hDC, 0, 0, Picture2.Width, Picture2.Height, Me.hDC, FLEXGRID.Left / 15, FLEXGRID.Top / 15, vbSrcCopy
        Picture2.AutoRedraw = False
        Picture2.Refresh
        Printer.PaintPicture Picture2.Image, 0, 0
        Printer.EndDoc
    End Sub
    Private Sub Form_Load()
    Picture2.Visible = False
    End Sub