一、打印控件
第一步先把打印对象搞出来。
- printDocument 打印对象(将要打印的内容放到该对象里,从该对象里取内容打印)
设置他的PrintPage事件(对于要打印的每一页触发一次)
- pageSetupDialog 打印设置对话框
- printPreviewDialog 打印预览对话框
- printPreviewControl 打印预览控件。
只需要把预览对象给他设置上就好
- printDialog 打印对话框
打印界面里面是否禁用页面范围、打印到文件等从PrintDialog的属性中进行设置。
二、事件对象和事件数据
例子:计算器按键显示事件委托。
如果触发这个事件的控件是一个按钮类型,
实例化一个按钮b=触发这个事件的控件转化为按钮。
sender 触发该事件的控件;e 事件数据。
三、MDI窗体容器
在主窗体的属性中将IsMdiContainer属性改为true,就是窗体容器了。
在里面放一个顶部菜单MenuStrip
在窗体容器中放进一个Panel占满全部。
将要打开的子页面做成无边框。
还需要设置成打开唯一窗口,如果打开了就把所有的都隐藏,把要打开的那个显示出来。
List<Form> FormList = new List<Form>(); private void 销售模块ToolStripMenuItem_Click(object sender, EventArgs e)
{
bool has = false;
Form2 f2 = new Form2(); //遍历FormList这个集合
foreach (Form f in FormList)
{
//如果f是Form2类
if (f is Form2)
{
has = true;
//f2就是Form2
f2 = f as Form2;
}
}
//如果这个集合中不存在Form2类
if (has == false)
{
//f2这个窗口属于哪个容器=this
f2.MdiParent = this;
//f2窗口打开初始大小为最大化
f2.WindowState = FormWindowState.Maximized;
//f2窗口的父级是Panel1
f2.Parent = panel1;
//打开f2这个窗口
f2.Show();
//并将f2添加到集合中去
FormList.Add(f2);
}
//如果已经打开过f2窗口
else
{
//遍历集合中所有窗体
foreach (Form f in FormList)
{
//全部隐藏
f.Hide();
}
//将f2显示出来
f2.Show();
}
}