c#父窗体和子窗体关闭有关问题
c#父窗体和子窗体关闭问题
各位大侠,我是c#开发的菜鸟,请问一下我创建了一个父窗体,点击父窗体的一个button生成一个子窗体,但是我在关闭子窗体的时候父窗体也会跟着关闭,不仅如此我在子窗体上添加一个buttonOK按钮,点击OK按钮会跳出一个messagebox框显示一些信息,我点击messagebox框的确定按钮后子窗体和父窗体也跟着关闭了。。。求解啊,实在不明白为什么。。。。我想关闭messagebox框的时候父框体和子窗体还在,关闭子窗体的时候父窗体还在。。。
------解决方案--------------------
关闭 子窗体 又执行了 关闭父窗口的操作了。
把代码贴出来看看,
------解决方案--------------------
如果只是父窗体new一个子窗体,关闭子窗体不会影响父窗体,你在FormClosed方法里写什么代码了
------解决方案--------------------
在子窗体定义:
private MainForm m_mainFormm;
public virtual MainForm mainFormm
{
get
{
return this.m_mainFormm;
}
set
{
this.m_mainFormm = value;
}
}
父窗体中显示子窗体时,
SonForm So=new SonForm();
So.mainFormm = this;//把父窗体传过去
子窗体关闭的时候,
mainFormm.Show();
this.Close();
------解决方案--------------------
你在打开子窗体的时候,将主窗体隐藏了??子窗体为什么要去操作父窗体啊
------解决方案--------------------
------解决方案--------------------
第一 把所有的this都删了,直接用对象来表示。
第二 自己设断点,看到底是代码报错导致的两个页面同时崩溃还是说确实是都关闭了,可以多加几个Messbox.show
------解决方案--------------------
关闭窗体弹出确认对话框
private void Frm_Main_FormClosing(object sender, FormClosingEventArgs e)//触发窗体关闭事件
{
if (MessageBox.Show("将要关闭窗体,是否继续?", "询问", MessageBoxButtons.YesNo) == DialogResult.Yes)//判断是否单击了“是”按钮
{
e.Cancel = false;//关闭窗体
}
else
{
e.Cancel = true;//取消事件的执行
}
}
各位大侠,我是c#开发的菜鸟,请问一下我创建了一个父窗体,点击父窗体的一个button生成一个子窗体,但是我在关闭子窗体的时候父窗体也会跟着关闭,不仅如此我在子窗体上添加一个buttonOK按钮,点击OK按钮会跳出一个messagebox框显示一些信息,我点击messagebox框的确定按钮后子窗体和父窗体也跟着关闭了。。。求解啊,实在不明白为什么。。。。我想关闭messagebox框的时候父框体和子窗体还在,关闭子窗体的时候父窗体还在。。。
------解决方案--------------------
关闭 子窗体 又执行了 关闭父窗口的操作了。
把代码贴出来看看,
------解决方案--------------------
如果只是父窗体new一个子窗体,关闭子窗体不会影响父窗体,你在FormClosed方法里写什么代码了
------解决方案--------------------
在子窗体定义:
private MainForm m_mainFormm;
public virtual MainForm mainFormm
{
get
{
return this.m_mainFormm;
}
set
{
this.m_mainFormm = value;
}
}
父窗体中显示子窗体时,
SonForm So=new SonForm();
So.mainFormm = this;//把父窗体传过去
子窗体关闭的时候,
mainFormm.Show();
this.Close();
------解决方案--------------------
你在打开子窗体的时候,将主窗体隐藏了??子窗体为什么要去操作父窗体啊
------解决方案--------------------
mainFormm.Show();
//this.Close(); 如果这段代码在FormClosed方法里,就去掉这句代码
------解决方案--------------------
第一 把所有的this都删了,直接用对象来表示。
第二 自己设断点,看到底是代码报错导致的两个页面同时崩溃还是说确实是都关闭了,可以多加几个Messbox.show
------解决方案--------------------
关闭窗体弹出确认对话框
private void Frm_Main_FormClosing(object sender, FormClosingEventArgs e)//触发窗体关闭事件
{
if (MessageBox.Show("将要关闭窗体,是否继续?", "询问", MessageBoxButtons.YesNo) == DialogResult.Yes)//判断是否单击了“是”按钮
{
e.Cancel = false;//关闭窗体
}
else
{
e.Cancel = true;//取消事件的执行
}
}