Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
+Presentation_4.doc
Скачиваний:
4
Добавлен:
08.02.2015
Размер:
298.5 Кб
Скачать

Перечисление System.ConsoleKey

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

Имя члена

Клавиша

Имя члена

Клавиша

F1 ... F12

F1 ... F12

Insert

INS (INSERT)

D0 ... D9

0 ... 9

Delete

DEL (DELETE)

A ... Z

A ... Z

Home

HOME

Spacebar

ПРОБЕЛ

End

END

Tab

TAB

PageUp

PAGE UP

Backspace

BACKSPACE

PageDown

PAGE DOWN

Enter

ВВОД

LeftArrow

СТРЕЛКА ВЛЕВО

Escape

ESC (ESCAPE)

RightArrow

СТРЕЛКА ВПРАВО

NumPad0 ... NumPad9

0 ... 9 на цифровой клавиатуре

UpArrow

СТРЕЛКА ВВЕРХ

Decimal

знак десятичного разделителя.

DownArrow

СТРЕЛКА ВНИЗ

Add

знак плюс

Clear

CLEAR

Subtract

знак минус

Pause

PAUSE

Multiply

знак умножения

Print

PRINT

Divide

знак деления.

PrintScreen

PRINT SCREEN

Структура 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);

}

}

/* Вывод:

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

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

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

Вы ввели CTL+A (символ '☺')

Вы ввели C (символ 'c')

Вы ввели CTL+C (символ '♥')

Вы ввели K (символ 'k')

Вы ввели ALT+I (символ 'i')

Вы ввели ALT+U (символ 'u')

Вы ввели ALT+SHIFT+H (символ 'H')

Вы ввели Escape (символ '←')

*/

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]