这是我的代码
表格1
TicketDetails td = new TicketDetails(getTicketID());
td.Show();
我想在显示 td 时关闭 Form1。
如果Form1
是您作为参数传递的表单,Application.Run
则您无法关闭它,否则您的应用程序将退出。您可以做的是在td
显示时隐藏表单。
TicketDetails td = new TicketDetails(getTicketID());
td.Show();
// Hide the main form
form1.Hide();
如果Form1
不是您的应用程序的主窗体,那么您可以简单地调用Close()
.form1
编辑@评论,
public class Form1 : Form
{
private override OnLoad(object sender, EventArgs e) {
DoWork();
}
public void DoWork() {
// your code
}
}
然后是一个例子。
TicketDetails td = new TicketDetails(getTicketID());
td.Show();
form1.Hide();
// example, maybe you need to call your work method
form1.DoWork();
如果要在显示第二个表单后关闭第一个表单,请使用以下Form.Shown
事件:
td.Shown += (o, e) => { this.Close(); }
td.Show();
对于其他可能有趣的事件,请查看Windows 窗体中的事件顺序。当然也可以立即关闭当前表单:
this.Close();
td.Show();
我做了这样的事情:
TicketDetails td = new TicketDetails(getTicketID());
td.Show();
this.Hide();
td.Close += (object sender, EventArgs e) =>
{
td.Parent.Close();
};
只要 TicketDetails 不是模态的,那么 td.show() 之后的任何代码都会运行。
我还假设 Form1 是您项目的启动表单。如果是这种情况,那么使用 .close 将停止您的应用程序。
你试过这个:
TicketDetails td = new TicketDetails(getTicketID());
td.Show();
Form1.Hide();
这显然隐藏了 Form1
谢谢
保罗