Мои Конспекты
Главная | Обратная связь


Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

Структура System.ConsoleKeyInfo



 

Таблица 4.3. Свойства типа System.ConsoleKeyInfo

Имя Описание
Key Возвращает клавишу консоли, представленную текущим объектом ConsoleKeyInfo.
KeyChar Возвращает символ Unicode, представленный текущим объектом ConsoleKeyInfo.
Modifiers Возвращает побитовое сочетание значений из перечисления System.ConsoleModifiers, указывающее, были ли одновременно с клавишей консоли нажаты управляющие клавиши <SHIFT>, <ALT> или <CTRL>.

 

 

Перечисление ConsoleModifiers

 

Таблица 4.4. Основные члены перечисления System.ConsoleModifiers

Имя члена Описание
Alt Клавиша <ALT> слева и справа
Shift Клавиша <SHIFT> слева и справа
Control Клавиша <CTRL> слева и справа

 

Пример 4.2. Применение неимеющего параметров метода ReadKey для считывания клавиши и определения, нажата ли одна или несколько клавиш <SHIFT>, <ALT> и <CTRL>.

 

using System;

Class Example

{ public static void Main()

{ ConsoleKeyInfo cki;

// Предотвращение завершения примера при нажатии CTRL+C.

Console.TreatControlCAsInput = true;

Console.WriteLine("Нажмите любую комбинацию управляющей " +

"клавиши CTRL, ALT, или SHIFT, и " +

"алфавитно-цифровой клавиши.");

Console.WriteLine("Нажмите клавишу <Esc> для выхода.\n");

Do

{ cki = Console.ReadKey();

Console.Write("Вы ввели ");

if ((cki.Modifiers & ConsoleModifiers.Alt) != 0)

Console.Write("ALT+");

if ((cki.Modifiers & ConsoleModifiers.Shift) != 0)

Console.Write("SHIFT+");

if ((cki.Modifiers & ConsoleModifiers.Control) != 0)

Console.Write("CTRL+");

Console.WriteLine(cki.Key.ToString());

} while (cki.Key != ConsoleKey.Escape);

}

}

/* Вывод:

Нажмите любую комбинацию управляющей клавиши CTRL, ALT, или

SHIFT, и алфавитно-цифровой клавиши.

Нажмите клавишу <Esc> для выхода.

Вы ввели A

Вы ввели ALT+K

Вы ввели CTL+P

Вы ввели RightArrow

Вы ввели SHIFT+R

Вы ввели CTL+I

Вы ввели ALT+J

Вы ввели SHIFT+O

Вы ввели CTL+U

*/

 

Пример 4.3. Пример, аналогичный примеру 4.2, но с применением метода ReadKey, принимающего параметр типа Boolean.

 

using System;

Class Example

{ public static void Main()

{ ConsoleKeyInfo cki;

// Предотвращение завершения примера при нажатии CTRL+C.

Console.TreatControlCAsInput = true;

Console.WriteLine("Нажмите любую комбинацию управляющей " +

"клавиши CTRL, ALT, или SHIFT, " +

"и алфавитно-цифровой клавиши.");

Console.WriteLine("Нажмите клавишу <Esc> для выхода.\n");

Do

{cki = Console.ReadKey(true);

Console.Write("Вы ввели ");

if ((cki.Modifiers & ConsoleModifiers.Alt) != 0)

Console.Write("ALT+");

if ((cki.Modifiers & ConsoleModifiers.Shift) != 0)

Console.Write("SHIFT+");

if ((cki.Modifiers & ConsoleModifiers.Control) != 0)

Console.Write("CTRL+");

Console.WriteLine("{0} (символ '{1}')", cki.Key, cki.KeyChar);

} while (cki.Key != ConsoleKey.Escape);

}

}

/* Вывод: