我想知道,如何使用例如转义键终止程序.一般来说,我必须做什么来在application.run(..)之后停止它?
我怎么能插入这个
private void myForm_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e) {
if (e.KeyCode == Keys.Escape) {
Application.Exit();
}
}
Run Code Online (Sandbox Code Playgroud)
在下面的代码中
static void Main()
{
using (WinForm new_form = new WinForm())
{
new_form.InitializeComponent();
new_form.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.Opaque, true);
new_form.InitializeDevice();
new_form.LoadSurfaces();
new_form.Set3D();
Application.Run(new_form);
}
Run Code Online (Sandbox Code Playgroud)
}
调用Application.Exit()方法.
该
Exit方法停止所有线程上的所有正在运行的消息循环,并关闭应用程序的所有窗口.此方法不一定强制应用程序退出.Exit通常从消息循环中调用该方法,并强制Run返回.要仅退出当前线程的消息循环,请调用ExitThread.
Exit引发以下事件并执行相关的条件操作:
FormClosing为该OpenForms属性表示的每个表单引发一个事件.可以通过将其FormClosingEventArgs参数的Cancel属性设置为true 来取消此事件.如果其中一个处理程序取消了该事件,则
Exit无需进一步操作即返回.否则,FormClosed将为每个打开的表单引发一个事件,然后关闭所有正在运行的消息循环和表单.
要在Esc按下该键时执行此操作,您可能希望处理表单的KeyUp事件:
private void myForm_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
{
Application.Exit();
}
}
Run Code Online (Sandbox Code Playgroud)