elv*_*spt 15 c# forms winforms
我想关闭我正在使用的当前表单(MainForm),然后打开第二个表单(Form).
我试过了:
private void buttonStartQuiz_Click(object sender, EventArgs e)
{
this.Close();
Form2 form2 = new Form2();
form2.ShowDialog();
}
Run Code Online (Sandbox Code Playgroud)
或者添加this.Close();后form2.ShowDialog()也不起作用.
任何提示?
编辑:也可以通过this.Close()在form2.ShowDialog()关闭新表单后关闭它来添加它.如果我选择form2.Show()它会立即关闭两个表格.
Svi*_*ack 35
更改
this.Close();
Run Code Online (Sandbox Code Playgroud)
至:
this.Hide();
Run Code Online (Sandbox Code Playgroud)
因为您无法关闭主应用程序窗口并希望应用程序在其后运行.您必须隐藏主窗体或将主窗口更改为仍然打开的窗口.
在这种情况下,您必须在ShowDialog()结束后关闭主窗口.然后,您必须添加此按钮事件功能的结尾this.Close()
您的代码新代码是:
private void buttonStartQuiz_Click(object sender, EventArgs e)
{
// hide main form
this.Hide();
// show other form
Form2 form2 = new Form2();
form2.ShowDialog();
// close application
this.Close();
}
Run Code Online (Sandbox Code Playgroud)
您可以使用ApplicationContext,但.NET框架已经非常好地支持使用WindowsFormsApplicationBase类的这种窗口模式.它的ShutdownStyle属性可用于仅在最后一个窗口关闭后关闭程序.使Program.cs中的代码如下所示:
using System;
using System.Windows.Forms;
using Microsoft.VisualBasic.ApplicationServices; // Add reference to Microsoft.VisualBasic!!
namespace WindowsFormsApplication1 {
class Program : WindowsFormsApplicationBase {
[STAThread]
static void Main(string[] args) {
var app = new Program();
app.EnableVisualStyles = true;
app.ShutdownStyle = ShutdownMode.AfterAllFormsClose;
app.MainForm = new Form1();
app.Run(args);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
94157 次 |
| 最近记录: |