zoukankan      html  css  js  c++  java
  • 【2017-05-03】winform打印控件、事件对象和事件数据、MDI窗体容器

    一、打印控件

    第一步先把打印对象搞出来。

     - printDocument    打印对象(将要打印的内容放到该对象里,从该对象里取内容打印)

        设置他的PrintPage事件(对于要打印的每一页触发一次)

     

     - pageSetupDialog 打印设置对话框

     

     - printPreviewDialog 打印预览对话框

     

     

      - printPreviewControl  打印预览控件。

    只需要把预览对象给他设置上就好

     

     

     - printDialog  打印对话框

    打印界面里面是否禁用页面范围、打印到文件等从PrintDialog的属性中进行设置。

     

     

     二、事件对象和事件数据

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

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

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

     

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

     

     三、MDI窗体容器

    在主窗体的属性中将IsMdiContainer属性改为true,就是窗体容器了。

    在里面放一个顶部菜单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         }

     

  • 相关阅读:
    ios 手势加变形
    ios 懒加载
    [leetCode]1111. 有效括号的嵌套深度
    [leetCode]面试题 08.07. 无重复字符串的排列组合
    [leetCode]46. 全排列
    [leetCode]37. 解数独
    [leetCode]面试题 08.09. 括号
    torch.Tensor 与 numpy.ndarray的相互转化
    [leetCode]93. 复原IP地址
    [leetCode]15. 三数之和
  • 原文地址:https://www.cnblogs.com/qq609113043/p/6804439.html
Copyright © 2011-2022 走看看