【2017-05-03】winform打印控件、事件对象和事件数据、MDI窗体容器

本文详细介绍了C#中打印控件的使用,包括PrintDocument对象、PageSetupDialog、PrintPreviewDialog及PrintDialog的配置。同时,深入探讨了MDI窗体容器的制作方法,如实现子窗体的打开与切换,以及如何通过List存储窗体对象以避免重复创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、打印控件

1.PrintDocument  打印对象(将要打印的内容放到该对象里,从该对象里取内容打印)

设置PrintDocument 事件中的 PrintPage 属性[对于要打印的每一页发生一次]

2.PageSetupDialog  打印设置对话框

3.PrintPreviewDialog  打印预览对话框

ps:PrintPreviewControl   打印预览控件

这个是在窗体中可以直接直接展示的打印预览状态的控件,只能展示,不能设置.

右侧的文档不包含任何页就是PrintPreviewControl控件,他在窗体中需要有位置才能展示

4.PrintDialog   打印对话框

打印界面中打印页面范围、打印到文件等从PrintDialog的属性中进行设置

 

二、事件对象和事件数据

例子:计算器按键显示事件委托。

如果触发这个事件的控件是一个按钮类型,

实例化一个按钮b=触发这个事件的控件转化为按钮。

sender 触发该事件的控件;e 事件数据。

 

三、MDI窗体容器

效果和容器TabelControl差不多,区别就是一个是用来存放控件,一个来存放Form窗体

选中主窗体,在窗口样式属性中,将IsMdiContainer属性改为true,把这个窗体变成了MDI窗体

常用MDI窗体容器制作

在里面放一个顶部菜单MenuStrip

在窗体容器中放进一个Panel占满全部

将要打开的子页面做成无边框,这样就不会存在关闭按钮了

1  List<Form> FormList = new List<Form>();
 2 
 3         private void 销售模块ToolStripMenuItem_Click(object sender, EventArgs e)
 4         {
 5             bool has = false;
 6             Form2 f2 = new Form2();
 7 
 8             //遍历FormList这个集合
 9             foreach (Form f in FormList)
10             {
11                 //如果f是Form2类
12                 if (f is Form2)
13                 {
14                     has = true;
15                     //f2就是Form2
16                     f2 = f as Form2;
17                 }
18             }
19             //如果这个集合中不存在Form2类
20             if (has == false)
21             {
22                 //f2这个窗口属于哪个容器=this
23                 f2.MdiParent = this;
24                 //f2窗口打开初始大小为最大化
25                 f2.WindowState = FormWindowState.Maximized;
26                 //f2窗口的父级是Panel1
27                 f2.Parent = panel1;
28                 //打开f2这个窗口
29                 f2.Show();
30                 //并将f2添加到集合中去
31                 FormList.Add(f2);
32             }
33             //如果已经打开过f2窗口
34             else
35             {
36                 //遍历集合中所有窗体
37                 foreach (Form f in FormList)
38                 {
39                     //全部隐藏
40                     f.Hide();
41                 }
42                 //将f2显示出来
43                 f2.Show();
44             }
45         }

ps:用MDI制作安装程序步骤的时候,先让MDI打开自身的一个Panel1,上面放一个Button,点击按钮后,Button隐藏,然后在打开MDI内的其它窗体,避免闪屏情况出现.

 

转载于:https://www.cnblogs.com/snow22546/p/6807815.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值