C#,如何通过按“Enter”按钮关闭我的应用程序?

时间:2016-02-07 05:22:45

标签: c#

我是C#的新手并且想知道,如果我想按Enter按钮关闭我的应用程序,我该怎么办?在对这个网站进行一些研究之后,我发现最接近这个技巧的是这个代码,

  string key = Console.ReadKey().ToString();
  if (key == "")
  {
      Console.WriteLine("User pressed enter!");
      return;
  }

然而,这并不是我想要的。为此,如果我按Enter键,只需按“按任意按钮关闭此应用程序”。如果有人能提供帮助那就太棒了。

感谢。

4 个答案:

答案 0 :(得分:1)

您的应用是控制台应用吗?或者它是 Windows窗体应用程序

对于控制台应用程序,默认情况下会在执行结束时自动关闭,我们需要阻止应用程序关闭直到用户按 Enter 键。这可以使用以下代码轻松完成:

ConsoleKeyInfo keyInfo;
do { keyInfo = Console.ReadKey(true); }
while (keyInfo.Key != ConsoleKey.Enter);


对于 Windows窗体应用程序,需要采用不同的方法。当用户按下并关闭表单时,我们需要拦截 Enter 键,如果它是主表单,它将退出应用程序。我们可以通过表单的KeyUp()事件来完成:

private void MainForm_KeyUp(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
    {
        this.Close();
    }
}

可以使用以下语句从设计器或代码添加事件处理程序:

this.KeyUp += MainForm_KeyUp;

最后,为了监听关键事件而不管表单上的控件是否具有焦点,我们需要将表单的KeyPreview属性设置为true,这可以在设计器中完成,或者在代码中如下:

public MainForm()
{
    InitializeComponent();

    // Set KeyPreview property to listen for key events:
    this.KeyPreview = true;
}

答案 1 :(得分:1)

在某些情况下,只需将Console.ReadLine()放在Main方法的末尾即可:

 static void Main(string[] args) {
     // your code here    

     Console.ReadLine();
 }

答案 2 :(得分:0)

我将假设它是一个控制台应用程序。

这就是我这样做的方式:

  

使用' while' -loop并在想要停止时休息

用一些代码解释:

static void Main(string[] args)
{
    while (true)
    {
        Console.WriteLine("test");
        ConsoleKeyInfo key = Console.ReadKey();
        if (key.Key == ConsoleKey.Enter) break;
        else Console.WriteLine("You gave something else");

        Console.WriteLine("This is the end of the app");
        break;
    }
}

答案 3 :(得分:0)

Google是你的朋友。答案是对您的ConsoleKey.Enter的if语句的简单修改,如下所示:

public static void Main()
{
  DateTime dat = DateTime.Now;
  Console.WriteLine("The time: {0:d} at {0:t}", dat);
  TimeZoneInfo tz = TimeZoneInfo.Local;
  Console.WriteLine("The time zone: {0}\n", 
                    tz.IsDaylightSavingTime(dat) ?
                       tz.DaylightName : tz.StandardName);
  Console.Write("Press <Enter> to exit... ");
  while (Console.ReadKey().Key != ConsoleKey.Enter) {} // <-- check for enter key
}

原始信息here

相关问题