有个打印按钮,点击打印,怎么样将listbox中的内容打印出来,是否能给个例子程序?

解决方案 »

  1.   

    保关心字符串信息,还是连ListBox的样式也打印出来?
      

  2.   

    如下代码在打印机上显示一个ListBox及内容:
    private void button2_Click(object sender, EventArgs e)
    {
    PrintPreviewDialog pd = new PrintPreviewDialog();
    pd.Document = new PrintDocument();
    pd.Document.PrintPage += new PrintPageEventHandler(Document_PrintPage);
    pd.Document.QueryPageSettings += new QueryPageSettingsEventHandler(Document_QueryPageSettings);
    pd.Document.BeginPrint += new PrintEventHandler(Document_BeginPrint);
    if (pd.ShowDialog(this) == DialogResult.OK)
    {
    }
    }void Document_QueryPageSettings(object sender, QueryPageSettingsEventArgs e)
    {
    e.PageSettings.Landscape = true;
    int index = -1;
    for (int i=0;i<e.PageSettings.PrinterSettings.PaperSizes.Count;i++)
    {
    if (e.PageSettings.PrinterSettings.PaperSizes[i].PaperName== "A4")
    {
    index=i;
    break;
    }
    }
    if (index != -1)
    {
    e.PageSettings.PaperSize = e.PageSettings.PrinterSettings.PaperSizes[index];
    }
    }void Document_BeginPrint(object sender, PrintEventArgs e)
    {
    }void Document_PrintPage(object sender, PrintPageEventArgs e)
    {
    using (Bitmap bit = new Bitmap(this.listBox.Width, this.listBox.Height))
    {
    this.listBox.DrawToBitmap(bit, this.listBox.ClientRectangle);
    e.Graphics.DrawImage(bit, new Point(0, 0));
    }
    }
      

  3.   

    我的Listbox的内容是这样的
    =============客户A信息===========
      姓名:甲   性别: 男  
      ...
    =============客户B信息===========
      姓名:甲   性别: 男  
        ...
    页面上有个按钮点击按钮就打印出来就可以了打印出来的内容差不多和listview一行对一行就行
      

  4.   

    由于listbox的内容比较多,有滚动条,我主要想打印的是里面的内容
      

  5.   

      protected void printDocument_PrintPage(Object sender, PrintPageEventArgs e)
      {
       private float y=1; 
       private float x=1; 
       Font btfont = new Font("黑体", 10);
       SizeF size = e.Graphics.MeasureString("样", btfont);
       for (int i = 0; i < listBox1.Items.Count; i++)
                {
                      
                 e.Graphics.DrawString("=============客户A信息=========== ", btfont, Brushes.Black, x,y)
                 y += size.Height;
                 e.Graphics.DrawString(listBox1.Items[i].ToString(), btfont, Brushes.Black, x,y)
                 }
       }
    自已调整x,y的值
      

  6.   

    试一下:
      protected void printDocument_PrintPage(Object sender, PrintPageEventArgs e) 
      { 
      private float y=1; 
      private float x=1; 
      Font btfont = new Font("黑体", 10); 
      SizeF size = e.Graphics.MeasureString("样", btfont); 
      for (int i = 0; i < listBox1.Items.Count; i++) 
                { 
                      
                e.Graphics.DrawString("=============客户A信息=========== ", btfont, Brushes.Black, x,y) 
                y += size.Height; 
                e.Graphics.DrawString(listBox1.Items[i].ToString(), btfont, Brushes.Black, x,y) 
                } 
      }