2011-04-13 64 views
3

我想可以打印显示在树视图中的数据,当用户通过使用文档打印点击打印按钮 和实际纸张打印 我使用Visual Studio 2008的如何打印TreeView?

+0

我在想,如果有,我可以使用外部文件来获取显示在树视图中的数据和打印此文件,,把我donknow如何做到这一点 – Omneya 2011-04-13 00:49:43

回答

0

在存储器树视图创建,然后复制显著属性和传送根节点。这样做后,通过DrawToBitmap函数创建内存位图并绘制Treeview内容,在页面上绘制图像并将根节点恢复到原始位置。

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) 
    { 
     var memtree = new TreeView(); 
     var rn = treeView1.Nodes[0]; 
     treeView1.Nodes.Remove(rn); 
     memtree.ImageList = treeView1.ImageList; 
     memtree.BorderStyle = BorderStyle.None; 
     memtree.Nodes.Add(rn); 
     memtree.ClientSize = new Size(e.MarginBounds.Width, e.MarginBounds.Height); 
     var bmp = new Bitmap(e.MarginBounds.Width, e.MarginBounds.Height); 
     memtree.DrawToBitmap(bmp, new Rectangle(0, 0, e.MarginBounds.Width-1, e.MarginBounds.Height-1)); 
     e.Graphics.DrawImage(bmp, e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width -1, e.MarginBounds.Height -1); 
     memtree.Nodes.Remove(rn); 
     treeView1.Nodes.Add(rn); 
    }