|
本帖最后由 我是MT 于 2015-9-5 19:01 编辑
有两个窗体,一个是Form1 一个是Form2。 Form1是主窗体,Form2是由主窗体的timer事件弹出来的一个“子窗体”。
因为在弹出来Form2的时候,我在Form1.cs文件中,实例化From2的同时设置了Form2.owner = Form1 ;正确的写法Form2.owner = this;
也就是说这个时候Form1变成了Form2的拥有者,可以理解为Form1是Form2的父窗体吗?
然后通过子窗体,我发现可以访问父窗体上面的timer控件。也就是可以“通过子窗体给父窗体”传值。
但问题来了,当两个窗体都同时显示的时候,最小化From1窗体,则From2窗体也跟着最小化了。这是为啥呢,有没有办法,使得在最小化From1的时候,Form2不受影响呢。还有,如下图所示的案例中,我在点击按钮“重新设置”的时候,如果检测到子窗体From2显示了,则close掉Form2.这里的Form2弹出来的方式是:Form2.ShowDialog();我发现这样子弹出来Form2,焦点被锁定在Form2上面,即便Form1挡在前面,也是无法对Form1窗体操作的。
还有,如果两个窗体同时显示出来了,当我点击Form1上面的Button1的时候,如何销毁掉Form2?
也就是说如何来判断Form2有实例化。貌似C#没有检测childform的方法。有时候关闭Form1的时候,Form2会莫名的销毁了。
|
|