基础的弹窗:
Form2 f2 = new Form2(); f2.Show();
1、弹窗窗口:
//实例化需要弹窗的类 Form2 f2 = new Form2(); f2.ShowDialog(); //此弹窗打开子弹窗后父级弹窗不可选中
2、子窗口:
//实例化Form2 Form2 f2 = new Form2(); //this代表这个类 //当前窗口的拥有f2 f2.Owner = this; f3.Show(); //子弹窗默认置顶父级弹窗,对其他弹窗无影响; //此弹窗子级弹窗和子级弹窗是平级的,可以互相覆盖;
3、唯一窗口:
//判断窗口有没有开启,没开启,开启一个新的,开启了,不做任何操作 //关闭变为没开启状态 //在Form1声明一个成员变量; public List<From> FromList = =nwe List<Form>(); //按钮的点击事件: //实例化Form2的时候要把form1传给Form2的构造函数; Form2 f2 = new Form2(this); bool a = false; //遍历FromList foreach(From x in FromList) { //判断,From2是否在FromList内,是返回true; if(x is From2) { a = true; } } //如果FromList内有From2... if(a) { } //如果没有.... else { //把f2放到集合内,由于Form1,Form2等等,和Form都是继承关系,所以... FormList.Add(f2); f2.Show(); } //这里是Form2的类的构造函数: //仅供提升作用域; Form F1 = null; //(From f1)的作用是传值; public From2(From f1) { F1 = f1; } //在Form2的FormClosing事件中双击: F1.FromList.Remove(this); //打开:简单的说,就是,先定义一个集合,把Form2放到一个集合内,遍历个集合,如果is到了返回true,不作任何操作,is不到返回false,可以打开From2,在把From2扔到集合内; //关闭了再打开就是把Form1自己,传给Form2的构造函数,当Form2关闭的时候执行关闭前的事件:把自己从集合内Remove掉;