窗体类型

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

 

转载于:https://www.cnblogs.com/William-1234/p/4506258.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值