2016-02-07 77 views
0

我是C#的新手,想知道如果我想通過按下Enter按鈕關閉我的應用程序,我該怎麼做?本網站上做了一些研究之後,我發現這樣做的伎倆最接近的事情是這樣的代碼,C#,如何通過按「Enter」按鈕關閉我的應用程序?

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

然而,這並沒有做什麼,我想它。爲此,如果我按Enter鍵,只需按「按任意按鈕關閉此應用程序」。如果任何人都可以提供幫助,那會很棒。

謝謝。

回答

0

我打算假定它是一個控制檯應用程序。

這是我做的方式:

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; 
    } 
} 
0

谷歌:

想停止

解釋一些代碼時,請使用「while'環,打破是你的朋友。答案很簡單的修改,以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

1

是您的應用程序控制檯應用程序?或者它是一個Windows窗體應用程序

對於控制檯應用程序,默認情況下,在執行結束時自動關閉,我們需要防止中應用程序關閉直到用戶按下回車關鍵。這可以很容易地使用下面的代碼來完成:

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


對於Windows窗體應用程序,需要採用不同的方法。當用戶按下它並關閉表單時,我們需要攔截輸入鍵,如果它是主表單,它將退出應用程序。或從代碼中使用下面的語句

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

事件處理程序可以從設計師加入:我們可以通過KeyUp()事件的形式完成

this.KeyUp += MainForm_KeyUp; 

最後,爲了聽鍵不管事件的形式是什麼控制具有焦點,我們需要設置形式true,這是可以做到在設計器中,或在代碼中的KeyPreview屬性,如下所示:

public MainForm() 
{ 
    InitializeComponent(); 

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

在某些情況下,它足以把Console.ReadLine()Main方法的末尾:

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

    Console.ReadLine(); 
} 
相關問題