c#中windows窗体编程
发布时间:2025-05-19 17:09:09 发布人:远客网络
一、c#中windows窗体编程
在Winform中的打印主要可以通过三种方式来实现:一种是使用Winform提供的类,另一种是使用控件,还有一种就是利用水晶报表的打印。
打印控件主要优势是方便快捷,一般应用于简单、固定、单调的模板打印,其主要常用控件有:
(1) PrintDocument:是一个可用于设置属性来描述有关打印的信息,并且可用于调用方法Print()或通过事件PrintPage来打印文档的组件。
(2) PrintDialog:允许用户选择打印机并指定文档中要打印的部分。
(3) PrintPreviewDialog:此控件是一个打印预览对话框,用于显示文档的打印效果。该控件包含用于打印、放大、显示一页或多页以及关闭对话框的按钮。
(4) PageSetupDialog:主要用来设置页面大小,页边距等。
------------------------------------------------------
建个winform工程,拖如上四个控件,再拖三个按钮
this.printDialog1.Document= this.printDocument1;//必要的
this.printPreviewDialog1.Document= this.printDocument1;
this.pageSetupDialog1.Document= this.printDocument1;
private void button3_Click(object sender, EventArgs e)
if(this.printDialog1.ShowDialog()== DialogResult.OK)
private void button1_Click(object sender, EventArgs e)
this.printPreviewDialog1.ShowDialog();
private void button2_Click(object sender, EventArgs e)
this.pageSetupDialog1.ShowDialog();
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{//双击printDocument控件,这才是真正开始干活的,在这里面写你想要打印信息
Font font= new Font("Tahoma", 12, FontStyle.Underline);//设置画笔
int nLeft= this.pageSetupDialog1.PageSettings.Margins.Left;
int nTop= this.pageSetupDialog1.PageSettings.Margins.Top;
int nRight= this.pageSetupDialog1.PageSettings.Margins.Right;
int nBottom= this.pageSetupDialog1.PageSettings.Margins.Bottom;
int nWidth= this.pageSetupDialog1.PageSettings.PaperSize.Width-nRight-nLeft;
int nHeight= this.pageSetupDialog1.PageSettings.PaperSize.Height-nTop-nBottom;
e.Graphics.DrawLine(pen, nLeft, nTop, nLeft, nTop+ nHeight);
e.Graphics.DrawLine(pen, nLeft+nWidth, nTop, nLeft+nWidth, nTop+ nHeight);
e.Graphics.DrawLine(pen, nLeft, nTop, nLeft+nWidth, nTop);
e.Graphics.DrawLine(pen, nLeft, nTop+nHeight, nLeft+ nWidth, nTop+nHeight);
//在离左边距20,右边距20的位置打印haha xixi
e.Graphics.DrawString("haha xixi", font, bru, nLeft+20, nTop+20);//如果要打印datagridView在这里遍历便可
但是如果想打印一张表的数据,我建义你使用水晶报表,这样就方便得多.
水晶报表(Crystal Report)是业内最专业、功能最强的报表系统,它除了强大的报表功能外,最大的优势是实现了与绝大多数流行开发工具的集成和接口。在VS.Net平台做过报表开发的程序员,一定都对水晶报表强大、高效、集成等特性留下了深刻印象。除了开发新程序外,在工作中我们常需要接触到很多较早的软件系统报表功能升级的需求,如果能结合水晶报表这一强大的工具,往往能事半功倍。
因为有些打印效果需要分类汇总、规范的页面格式、预览等,而水晶报表都能方便高效的实现。如打印药品入库清单,需要用到表格的样式,且对总消费求和;处方笺的打印也需要绘制规范的格式,同时还可以利用自带的公式进行相应的数据加工。
其实现过程:首先建立一个DataSet.xsd文件,在上面创建需要的Table模板,table中的列都将是水晶报表要用到的;其次通过报表专家进行水晶报表的创建,包括需要显示的字段,需要汇总求和的数据,基本样式等都可逐步实现,完成后也可做相应的样式和数据修改;最后把数据库里的数据查询出来,赋给水晶报表数据源,通过CrystalReportView控件展示给用户。通过自带的打印,导出等工具,可以方便的进行操作。
二、C#怎么新建一个窗体
在C#编程中,新建一个窗体的操作主要涉及两个步骤。首先,需要在Visual Studio的资源管理器里添加一个窗体。这通常在创建新项目或现有项目后自动完成,不过这里假设已有项目。通过在项目中右键点击,选择“添加”然后“Windows Form”,即可在项目中生成一个新的窗体。
一旦新窗体被添加到项目中,下一步是在某个按钮的事件处理函数中创建并显示这个窗体。例如,假设你有一个名为Button1的按钮,想要在点击时打开新窗体。首先,需要在代码编辑器中找到Button1的“Click”事件。这里的关键是创建一个新窗体实例并将其显示出来。
具体操作如下:首先,声明一个指向新窗体的引用变量,例如`Form2 f2;`。接着,在事件处理函数中,使用`new`关键字创建`Form2`类的实例,并将其赋值给`f2`。代码可能如下所示:`f2= new Form2();`。然后,通过调用窗体的`Show()`方法,确保新窗体在用户界面中可见。完整的代码段如下:`f2.Show();`。
这样,当用户点击Button1时,程序会创建一个名为Form2的新窗体,并将其显示在屏幕上。需要注意的是,`Form2`应为预先定义的窗体类名。如果使用不同的窗体类,如`Form3`或`CustomForm`,则相应地替换类名即可。
总结来说,新建C#窗体并将其显示在用户界面上,只需在资源管理器中添加窗体,然后在事件处理函数中通过实例化和调用`Show()`方法即可完成。这种方式不仅简化了操作流程,也为程序员提供了灵活创建和管理多窗体应用的基础。
三、c#窗体应用程序编写的过程
1、 C#可以编写很多类型的应用程序,其中窗体程序是很多人经常编写的。那么用C#怎么编写窗体程序呢?下面我给大家分享一下。
2、首先打开Visual Studio 2015软件,新建一个窗体应用程序的项目,如下图所示
3、建好了窗体程序以后,我们就可以打开工具箱,从工具箱选择需要的窗体控件,然后将控件拖拽到窗体中即可,如下图所示
4、拖拽完窗体控件以后,我们剩下需要做的就是实现控件的相关事件,比如点击事件,如下图所示
5、最后我们还可以更改窗体控件的相关属性,比如控件的名称,大小,位置等等,如下图所示