【2017-05-03】winform打印控件、事件对象和事件数据、MDI窗体容器
一、打印控件
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内的其它窗体,避免闪屏情况出现.