VS2005 winform在子窗体中关闭父窗体,可以做到吗? rt 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 No, window cannot kill its father~ 可以啊在frm1里写frm2.show在frm2里写frm1.close当然frm2也会跟着一起关闭不知道是不是你想要的 父窗口(Form2 ): Form3 frm = new Form3(); frm.Owner = this; frm.Show();子窗口(Form3 ): Form2 frm = (Form2)this.Owner; frm.Close();这样子窗口也会关掉 private void button_Click(object sender, EventArgs e) { Form form = new Form(); form.FormClosed += delegate { this.Close(); }; form.ShowDialog(); }这样就可以了. 你是想一次性关闭两个窗体是这个意思吗?可以在父窗体中加一个Timer ,Timer事件中加入 this.hide(); 在关闭子窗体的时候,启动父窗体的timer或者可以这样。父窗体的实例化变量form1设为公共,子窗体关闭直接form1.hide();那么了窗体也会跟着关闭,这样就只需关一次。(我想你这里的父窗体下面肯定还有一个主窗体,如果不是,在子窗体直接结束程序更快.) 这个方法不行,f.MdiParent = this;才会把子窗体加在父窗体中 public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form2 frm2 = new Form2(); frm2.Show(this);//或 frm2.ShowDialog(this); } } public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void button2_Click(object sender, EventArgs e) { Form1 frm1 = (Form1)this.Owner; this.Hide(); } public event childclose closefather; private void Form1_Closed(object sender, System.EventArgs e) { closefather(); }父窗口 public delegate void childclose();子窗体: Form1 ff=new Form1(); ff.closefather+=new childclose(this.closethis); ff.Show(); public void closethis() { this.Close(); } form1Form2 form =new Form();form.ShowDialog();this.Close(); 父窗体进入子窗体的时候传下父窗体的this参数,子窗体写个带参构造函数,然后就可以关父窗体了,不过子窗体会同时关闭 在子窗体closing事件里写Application.Exit(); 很简单,父窗体打开子窗体的时候,用showdialog方法而不用show方法,然后在父窗体中去判断子窗体的返回结果,像这样:if(child_from.showdialog()==DialogResult.OK){this.close();} 很简单,父窗体打开子窗体的时候,用showdialog方法而不用show方法,然后在父窗体中去判断子窗体的返回结果,像这样:if(child_from.showdialog()==DialogResult.OK){this.close();} 两种方法,一种是将父窗体当做参数传给子窗体,当然子窗体的构造函数必须有父窗体这个参数...一种是调用this.ParentForm.Close() 那你把frm.Owner = this;改成frm.MdiParent = this;然后 Form2 frm = (Form2)this.MdiParent; frm.Close();就行了或者隐藏父窗口Hide(),子窗口关闭的时候用Application.Exit(); 我换了方法,直接用这个了Application.Exit(); 举个例子:Login(父窗体)登录成功后,进入HomePage。this.Visible = false;HomePage main = new HomePage();main.LoginForm = this;main.Show();在main里写一个private Login _loginForm; public Login LoginForm { get { return _loginForm; } set { _loginForm = value; } }当Homepage里写一段,private void HomePage_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("确定退出吗?", "消息来自主界面",MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel) { e.Cancel = true; } else { this.LoginForm.Close(); } }这样就可以实现了关闭程序啦 一个很简单的文字编码问题 ToolStripMenuItem如何承载其它控件 请教C#的一个问题,路过进来看看,急 弱弱的问一下 如何设置默认页 关于数据库修改,内容实时更新的问题 从数据库中读取数据(大概15000条)“动态”添加到listbox框中 怎样在删除DataTable的行前加入检测语句? div 多层嵌套取值 如何生成多帧的GIF文件 C#程序执行效率问题 wpf 登录网页
在frm1里写frm2.show在frm2里写frm1.close当然frm2也会跟着一起关闭不知道是不是你想要的
Form3 frm = new Form3();
frm.Owner = this;
frm.Show();子窗口(Form3 ):
Form2 frm = (Form2)this.Owner;
frm.Close();
这样子窗口也会关掉
private void button_Click(object sender, EventArgs e)
{
Form form = new Form();
form.FormClosed += delegate { this.Close(); };
form.ShowDialog();
}这样就可以了.
可以在父窗体中加一个Timer ,Timer事件中加入 this.hide();
在关闭子窗体的时候,启动父窗体的timer或者可以这样。父窗体的实例化变量form1设为公共,子窗体关闭直接form1.hide();
那么了窗体也会跟着关闭,这样就只需关一次。(我想你这里的父窗体下面肯定还有一个主窗体,如果不是,在子窗体直接结束程序更快.)
这个方法不行,f.MdiParent = this;才会把子窗体加在父窗体中
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show(this);//或 frm2.ShowDialog(this);
}
} public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
} private void button2_Click(object sender, EventArgs e)
{
Form1 frm1 = (Form1)this.Owner;
this.Hide();
}
private void Form1_Closed(object sender, System.EventArgs e)
{
closefather();
}
父窗口
public delegate void childclose();
子窗体: Form1 ff=new Form1();
ff.closefather+=new childclose(this.closethis);
ff.Show(); public void closethis()
{
this.Close();
}
form.ShowDialog();
this.Close();
if(child_from.showdialog()==DialogResult.OK)
{
this.close();
}
if(child_from.showdialog()==DialogResult.OK)
{
this.close();
}
一种是调用this.ParentForm.Close()
this.Visible = false;
HomePage main = new HomePage();
main.LoginForm = this;
main.Show();在main里写一个
private Login _loginForm;
public Login LoginForm
{
get
{
return _loginForm;
}
set
{
_loginForm = value;
}
}
当Homepage里写一段,
private void HomePage_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("确定退出吗?", "消息来自主界面",MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel)
{
e.Cancel = true;
}
else
{
this.LoginForm.Close();
}
}
这样就可以实现了关闭程序啦