zoukankan      html  css  js  c++  java
  • Winform知识

    文档界面
    分类:
    1、单文档界面应用程序(SDI)
    特点:
    1、应用程序中SDI的所有窗体都彼此独立
    2、多文档界面应用程序(MDI)
    特点:
    1、每个应用程序中只能有一个MDI父窗体,在父窗体中可以打开多个MDI子窗体
    2、任何MDI子窗体都只能在父窗体内部区域活动。
    3、当关闭任何子窗体时,对其他打开的子窗体以及父窗体均没有任何影响。
    4、当关闭父窗体时,将关闭所有打开的子窗体。
    实现步骤:
    1、设置MDI父窗体
    设置窗体IsMdiContainer属性为true:则当前窗体为MDI父窗体
    2、设置MDI子窗体代码如下
    窗体名 对象名=new 窗体名();
    对象名.MdiParent =this;
    对象名.Show();
    注意:MDI子窗体在弹窗出现时一定不能设置为模式弹窗
    即:只能为Show弹窗
    ===================================================================================================================
    一、MDI窗体设置和其子窗体设置
    1、设置窗体的IsMdiContainer属性为true
    2、设置MDI窗体的子窗体
    子窗体1 子窗体=new 子窗体1();
    子窗体.MdiParent=this;
    子窗体.Show();

    二、MDI窗体的子窗体排列
    1、水平对齐:this.LayoutMdi(MdiLayout.TileHorizontal);
    2、垂直平铺:this.LayoutMdi(MdiLayout.TileVertical);
    3、层叠:this.LayoutMdi(MdiLayout.Cascade);
    4、排列所以图表:this.LayoutMdi(MdiLayout.ArrangeIcons);

    三、获取子窗体的数量
    1、MessageBox.Show(this.MdiChildren.Length+"");

    四、MDI窗体中窗口只允许打开一个
    /// <summary>
    /// 判断MDI子窗体是否存在 存在就显示
    /// </summary>
    /// <param name="formName">窗体名</param>
    /// <returns></returns>
    public bool IsSunFrmOpen(string formName)
    {
    // 子窗体是否已经打开了?(用循环来判断)
    foreach (Form childrenForm in this.MdiChildren)
    {
    //检测是不是当前子窗体名称
    if (childrenForm.Name == formName)
    {
    //是的话就是把他显示
    childrenForm.Visible = true;
    //恢复窗体的默认状态
    childrenForm.WindowState = FormWindowState.Normal;
    return true;
    }
    }
    return false;
    }

    调用如下:
    private void **_Click(object sender, EventArgs e)
    {
    //判断名字为Form1的子窗体是否存在 存在就显示 否则就创建
    if (!IsSunFrmOpen("Form1"))
    {
    //不存在就创建窗体对象
    Form1 f1 = new Form1();
    f1.MdiParent = this;
    f1.Show();
    }
    }

  • 相关阅读:
    Jupsh_flutter Android 收不到消息 / 排查不出请根据第 9 点说明提供信息
    angular表单 Dom获取表单值以及双向数据绑定
    angular中的组件以及组件中的模板合成
    Flutter开发的app进行设备判断是Ios还是android
    Java的封装
    GCD编程 之 略微提高篇
    多线程基础(六)GCD基础
    我遇到的CocoaPods的问题(也许后期会解决,持续更新)
    iOS之通过PaintCode快速实现交互动画的最方便方法 未解问题
    多线程基础(五)NSThread线程通信
  • 原文地址:https://www.cnblogs.com/you-zi/p/4351164.html
Copyright © 2011-2022 走看看