2016-02-07 40 views
0

Я новичок в C# и задавался вопросом, хочу ли я закрыть свое приложение, нажав кнопку Enter, как бы мне это сделать? После выполнения некоторых исследований на этом сайте, ближе всего я нашел, чтобы делать трюк этот код,C#, как мне закрыть приложение, нажав кнопку «Ввод»?

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

Однако, это не то, что я от него хочу. Для этого, если я нажму «Enter», просто дойдет до «нажмите любую кнопку, чтобы закрыть это приложение». Если кто-то может помочь, это будет здорово.

Спасибо.

ответ

0

Я собираюсь предположить, что это консольное приложение.

Это так, как я это сделать:

Используйте «while' петлю и сломаться, когда хочет, чтобы остановить

Разъяснения с некоторым кодом:

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

Google твой друг. Ответ простой модификации вашей, если заявление о ConsoleKey.Enter, как показано здесь:

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

ваше приложение Console Application? Или это Приложение Windows Forms?

Для применения в консоли, который по умолчанию автоматически закрывается при завершении выполнения, мы должны были бы предотвратить приложение от закрытия не до пользователь нажимает Введите ключ. Это можно легко сделать, используя следующий код:

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


Для Windows Forms Application, необходим другой подход. Нам нужно перехватить . Введите ключ, когда пользователь нажмет его и закроет форму, которая выйдет из приложения, если это основная форма.Мы можем выполнить через 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

В некоторых случаях этого достаточно, чтобы разместить Console.ReadLine() в конце метода Main:

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

    Console.ReadLine(); 
} 
Смежные вопросы