主窗体 弹出框,经验总结
前段时间做的无线无源的测温项目,弹出框的制作思路:都是利用.show()完成。
问题就来了:触发一次,弹出一个框,显然达不到要求,后来通过窗体间传值,
将窗体第一次触发后,就将触发条件屏蔽,直到弹出框销毁,再开启触发。
其实,弹出框完全可以用.showdialog()完成。
但是,这种方式在该弹出框未销毁的时候,不能操作其他的内容,适用于欢迎页的制作,关于页的制作等等。
而上面提到的方面,可以实现弹出框存在仅存在一个的时候,实现对其他内容的操作,但是实现有点复杂。
实质:窗体见传值!
弹出框
1 public delegate void Operate(bool flag);//声明一个委托 2 public Operate operate;//委托的实例化,用于控制打开此窗体的打开按钮的Enable属性 3 4 private void Form25_Load(object sender, EventArgs e) 5 { 6 if (operate != null) 7 { 8 operate(false); 9 } 10 }
1 private void Form25_FormClosing(object sender, FormClosingEventArgs e) 2 { 3 if (operate != null) 4 { 5 operate(true); 6 } 7 }
主窗体
1 private void 温度偏移量配置ToolStripMenuItem_Click(object sender, EventArgs e) 2 { 3 fr25 = new Form25();//温度偏移量配置 4 fr25.operate = Set_温度偏移量配置ToolStripMenuItem_enable; 5 fr25.Show(); 6 fr25.operate_wendupianyiliang = Operate_TemperaturePianYiLiang; 7 } 8 private void Set_温度偏移量配置ToolStripMenuItem_enable(bool flag) 9 { 10 this.温度偏移量配置ToolStripMenuItem.Enabled = flag; 11 }
欢迎关注微信公众号:大数据从业者