我是C#的新手并且想知道,如果我想按Enter按钮关闭我的应用程序,我该怎么办?在对这个网站进行一些研究之后,我发现最接近这个技巧的是这个代码,
string key = Console.ReadKey().ToString();
if (key == "")
{
Console.WriteLine("User pressed enter!");
return;
}
然而,这并不是我想要的。为此,如果我按Enter键,只需按“按任意按钮关闭此应用程序”。如果有人能提供帮助那就太棒了。
感谢。
答案 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