• 窗体类型


    窗体类型分为两大类:单文档窗体界面(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();
    }
    }

  • 相关阅读:
    office2007/2010/2013输入公式的正确方式
    寻找与网页内容相关的图片(三)网易新闻与qq空间的做法
    寻找与网页内容相关的图片(二)reddit的做法
    用matplotlib绘制漫画风格的图表
    Monty Hall悖论
    天气中的概率 | 连续两天的天气独立吗?
    寻找与网页内容相关的图片(一) 开放图谱计划
    识别验证码:寻找数字的位置(三)
    识别验证码:寻找数字的位置(二)
    识别验证码:寻找数字的位置(一)
  • 原文地址:https://www.cnblogs.com/William-1234/p/4506258.html
Copyright © 2020-2023  润新知