Visual C#页面设置(PageSetupDialog)

Visual C#页面设置(PageSetupDialog)
来源:中国自学编程网   发布日期:2008-03-17  
   其实页面设置(PageSetupDialog)没有太多的讲,既然讲到这里,我还是把PageSetupDialog中常用的属性列出来吧

一、页面设置(PageSetupDialog)常见属性

AllowMargins 设置是否可以对边距的编辑 AllowOrientation 是否可以使用/"方向/"单选框 AllowPaper 设置是否可以对纸张大小的编辑 AllowPrinter 设置是否可以使用/"打印机/"按钮 Document 获取打印机设置的PrintDocument MinMargins 允许用户选择的最小边距

二、

  就这么简单啦,我们看看下面的吧,还有更重磅的东东呢?关于打印的。

打印预浏及打印

   打印是我们在windows编程中常要用到的功能,在以前都是很麻烦工作,但在Microsoft .net Framework中打印是以组件提供给我们使用,不过还是点麻烦的,所以就专门写出来,供大家参改。

  一, 在.net环境中,说到打印,就不能不说PrintDocumet这个类,PrintDocument属于System.Drawing.Printing这个名字空间,PrintDocument这个类是实现打印的核心代码。

   如果要实现打印,就必需首先构造PrintDocument对象添加打印事件,
printDocument.PrintPage+=new PrintPageEventHandler(this.printDocument_PrintPage)
打印其实也是调用Graphics类的方法进行画图,下面这代码是根据MSDN上提供的例程改写的。MSDN打印例程地址:

   http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDrawingPrintingPrintDocumentClassTopic.asp ,有兴趣的网友可以参改一下。

   下面是我改写的printDocument_PrintPage:

private void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
float linesPerPage=0;//页面的行号
float yPos=0;//打印字符串的纵向位置
int count=0;//行计数器
float leftMargin =e.MarginBounds.Left;//左边距
float topMargin=e.MarginBounds.Top;//上边距
string line=null;//行字符串
Color clr=richTextBox1.SelectionColor;//当前的打印颜色,在我这个程序没有实现不同颜色打印
SolidBrush b =new SolidBrush(clr);//刷子
fnt=richTextBox1.SelectionFont;//当前的打印字体
linesPerPage=e.MarginBounds.Height/fnt.GetHeight(e.Graphics);//每页可打印的行数
file://逐行循行打印一页
while(count
{
yPos=topMargin+(count*fnt.GetHeight(e.Graphics));
e.Graphics.DrawString(line,fnt,b,leftMargin,yPos,new StringFormat());
count++;
}
file://如果该页打印完成而line不为空说明还有没完成的页面,发出下一次的打印事件,
file://在下一次的打印中lineReader会自动读取上次没有打印完的内容。lineReader可以记录当前读取的位置
if(line!=null)
e.HasMorePages=true;
else
e.HasMorePages=false;
}

  在这里可以完成整个打印任务。把printDocument_PrintPage构造好后,就可以打印和打印预浏。

 二、打印预浏对话框(PrintPreviewDialog)

   打印预浏控件是用来显示一个打印文档在打印后的效果。在打印预浏对话框中包含有,打印、缩放、单页或多页、关闭等按钮。

  打印预浏对话框没有太多的属性,最后通过ShowDialog()调用。上面的实现代码如下:

private void printPreviewBTN_Click(object sender, System.EventArgs e) [Page]
{
lineReader = new StringReader(richTextBox1.Text);
try
{
PrintPreviewDialog printPreviewDialog1=new PrintPreviewDialog();
printPreviewDialog1.Document=printDocument;
printPreviewDialog1.FormBorderStyle=FormBorderStyle.Fixed3D;
printPreviewDialog1.ShowDialog(this);
}
catch(Exception excep)
{
MessageBox.Show(excep.Message, /"打印出错/", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}

  很简单的,只要你把PrintDocument_PrintPage()写好了,这里就很容易了。

三、打印对话框(PrintDialog)

   1、打印对话框(PrintDialog)只要有以下属性:

AllowPrintToFile 禁止或使用/"打印到文件/"复选框 AllowSelection 禁止或使用/"选定内容/"单选框 AllowSomePages 禁止或使用/"页/"单选按钮 Document 从中获取打印机设置的PrintDocument PrintToFile 打印到文件/"复选框是否选中 ShowHelp 控制是否显示/"帮助/"按钮 ShowNetWork 控制是否显示/"网络/"按钮

  2、

 3、用如下代码来实现:

private void printDialogBTN_Click(object sender, System.EventArgs e)
{
PrintDialog printDialog=new PrintDialog();
printDialog.Document=printDocument;
if(printDialog.ShowDialog()!=DialogResult.Cancel)
{
try
{
printDocument.Print();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}

  到此,所有的对话框都讲完了。

   上述对话框,完全可以在vs.net的IDE环境中完成。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值