zoukankan      html  css  js  c++  java
  • 窗体类型

    窗体类型分为两大类:单文档窗体界面(SDI)和多文档窗体界面(MDI)

    一,单文档窗体界面:有一个主窗体,其他的窗体都是辅助窗体和对话框,主窗体一旦关掉,整个程序全部结束

    案例1:如何做登录窗体

    1,确定好主窗体,在Program.cs文件中的Main函数中使用Application.Run()启动主窗体——Application.Run(new Main());

    2,做一个登录窗体,在登录验证完成后不要关闭窗体也不要隐藏窗体,只需要给this.DialogResult赋个值即可

    private void button1_Click(object sender, EventArgs e)
    {
    //验证用户名和密码是否正确
    if (textBox1.Text == "aaa" && textBox2.Text == "bbb")
    {
    this.DialogResult = System.Windows.Forms.DialogResult.OK;
    }
    else
    {
    textBox1.Text = "";
    textBox2.Text = "";
    }
    }

    3,在Program.cs的Main函数中,在Application.Run()运行主窗体之前,先启动登录窗体(用ShowDialog的形式启动)

    如果对话框返回确定的标识时,就运行下面的Application.Run();

    Form1 f = new Form1();
    DialogResult result = f.ShowDialog();
    if (result == DialogResult.OK)
    {
    Application.Run(new Main());
    }

    二,多文档窗体界面:一个父窗体里面包含多个子窗体,子窗体无法移动到父窗体外面,父窗体关闭子窗体全部关闭

    如何做一个多文档窗体界面

    1,做一个窗体,设置窗体的属性:IsMdiParent = true(以此作为父窗体)

    2,做一个子窗体,并在窗体的代码中实例化出该窗体

    3,设置子窗体的属性:MdiParent=this  //this代表的是当前的父窗体对象

    4,显示子窗体

    ChildForm f = new ChildForm();
    f.MdiParent = this;

    f.Show();

    父窗体中重要的属性

    IsMdiContainer——是否是父窗体

    MdiChildren——所有的子窗体的集合 ,是一个Form集合的类型

    ActiveMdiChild - 当前正在顶层的子窗体,是一个Form类型

    案例1:使用菜单添加多个子窗体,关闭所有子窗体,关闭当前子窗体。

    1,做一个窗体,从菜单与工具栏内拖一个MenuStrip控件,输入文字

    2,新建子窗体代码

    childform cf=new childform();

    cf.MdiParent=this;

    cf.show();

    3,关闭所有子窗体代码

    foreach (childform cf in this.MdiChildren)
    {
    cf.Close();
    }

    4,关闭当前子窗体代码

    childform cf= this.ActiveMdiChild as childform;
    cf.Close();

    案例2:只生成一个子窗体。如果已经有了一个子窗体的话,就不再添加新的子窗体。

    private void toolStripMenuItem1_Click(object sender, EventArgs e)
    {
    bool ss = false;    //定义一用来控制子窗体的显示个bool型的变量
    foreach (Form f in this.MdiChildren) //遍历当前窗体的所有子窗体
    {
    if (f is childform) //如果其中有childform窗体,则将false赋给ss,跳出循环
    {
    ss = true;
    break;
    }

    }
    if (ss == false) //如果其中没有childform窗体就新建一个childform窗体
    {
    childform z = new childform();
    z.MdiParent = this;
    z.Show();
    }
    }

  • 相关阅读:
    mui 点击输入框软键盘弹起解决
    Vue中form表单常用rules校验规则
    ios new Date('yyyy-MM-dd HH-mm-ss').getTime() 方法获取不到时间戳
    uni-app运行到手机报错 Component constructors should be called while initialization. A constructor call has been ignored.
    vue-element-admin后台 点击侧边栏 刷新当前路由
    vue 防抖和节流
    vue data数据变化 页面数据不更新问题
    uni-app中页面部分内容使用索引列表(uni-indexed-list),动态数据
    css 文本单行显示溢出时出现省略号 多行显示溢出时出现省略号 首行缩进
    css实现两个div并排等高(一个div高度随另一个高度变化而变化)
  • 原文地址:https://www.cnblogs.com/William-1234/p/4506258.html
Copyright © 2011-2022 走看看