Hi,本文展示在C#语言实现窗体内容打印效果,本文为本人之前学习的内容但时间久远,因此展示的内容、代码语法可能不正确,还请理解(李姐万岁)
一、效果展示
二、具体实现
使用 Visual Studio 创建一个 Windows窗体应用
之后适当调整窗体的大小与内容,并放置一个panel组件固定于窗体底部,在panel组件里再次放置三个Button按钮,分别命名为“打印”、“打印预览”、“打印设置”。
然后在工具框中分别找到如下三个组件拖入窗体中。
分别是打印窗体组件、打印预览组件和打印设置组件。
在属性设置面板中分别设置打印预览和打印设置与打印窗体组件相关联(如下图)。
为第一个“打印”按钮的事件中添加鼠标单击事件,并添加代码使其调用打印窗体组件的功能。
为第二个“打印预览”按钮的事件中添加鼠标单击事件,并添加代码使其调用打印预览组件的功能
为第三个“打印设置”按钮的事件中添加鼠标单击事件,并添加代码使其调用打印设置组件的功能。
// 打印事件
private void BtnPrint_Click(object sender, EventArgs e)
{
printDocument1.Print();
}
// 打印预览事件
private void BtnPreview_Click(object sender, EventArgs e)
{
printPreviewDialog1.ShowDialog();
}
// 页面设置事件
private void BtnPagSet_Click(object sender, EventArgs e)
{
pageSetupDialog1.ShowDialog();
}
三、窗体内容显示
本文以窗体中显示一组同心圆为案例。
首先创建一个声明私有的函数体。
private void DrawContent(Graphics graphics)
{
}
在内部写入如下代码(本案例因时间长久忘了意义,就不一一解释了)
private void DrawContent(Graphics graphics)
{
Graphics g = graphics;
g.DrawString("这是一组同心圆", this.Font, Brushes.Black, new Point(10, 20));
int CenterX = 120;
int CenterY = 120;
g.FillEllipse(Brushes.Red, CenterX - 80, CenterY - 80, 160, 160);
g.FillEllipse(Brushes.Purple, CenterX - 60, CenterY - 60, 120, 120);
g.FillEllipse(Brushes.Blue, CenterX - 40, CenterY - 40, 80, 80);
g.FillEllipse(Brushes.Green, CenterX - 20, CenterY - 20, 40, 40);
}
如需显示其他的圆或平行线,将代码替换为如下代码即可。
/* 网格线 */
g.DrawString("这是一组网格线", this.Font, Brushes.Black, new Point(90, 20));
g.DrawLine(Pens.Red, new Point(0, 80), new Point(300, 80));
g.DrawLine(Pens.Purple, new Point(0, 160), new Point(300, 160));
g.DrawLine(Pens.Blue, new Point(80, 0), new Point(80, 240));
g.DrawLine(Pens.Green, new Point(200, 0), new Point(200, 240));
/* 平行线 */
g.DrawString("这是一组平行线", this.Font, Brushes.Black, new Point(10, 20));
g.DrawLine(Pens.Red, new Point(20, 180), new Point(160, 40));
g.DrawLine(Pens.Blue, new Point(60, 180), new Point(200, 40));
g.DrawLine(Pens.Black, new Point(100, 180), new Point(240, 40));
/* 同心圆 */
g.DrawString("这是一组同心圆", this.Font, Brushes.Black, new Point(10, 20));
int CenterX = 120;
int CenterY = 120;
g.DrawEllipse(Pens.Red, CenterX - 80, CenterY - 80, 160, 160);
g.DrawEllipse(Pens.Purple, CenterX - 60, CenterY - 60, 120, 120);
g.DrawEllipse(Pens.Blue, CenterX - 40, CenterY - 40, 80, 80);
g.DrawEllipse(Pens.Green, CenterX - 20, CenterY - 20, 40, 40);
注:须在窗体的绘制事件中添加如下内容,方可打印显示
private void Form1_Paint(object sender, PaintEventArgs e)
{
DrawContent(this.CreateGraphics());
}
OK,本文到此结束,以上内容均为本人所学知识,学艺不精,如有错误还请理解。
2024-03-27 17:47:11
,某些文章具有时效性,若有错误或已失效,请评论反馈。
暂无评论内容