
- •4. Ввод-вывод
- •4.1. Консольный ввод-вывод
- •4.1.1. Ввод и вывод с помощью классаConsole
- •4.1.2. Методы классаSystem.Console
- •Перечисление System.ConsoleKey
- •Структура System.ConsoleKeyInfo
- •Перечисление ConsoleModifiers
- •4.2. Форматирование строк
- •{Index[,length][:format]}
- •4.2.1. Строки стандартных числовых форматов
- •4.2.2. Строки настраиваемых числовых форматов
- •4.2.3. Форматирование с помощью управляющих последовательностей
- •4.3. Ввод-вывод с использованием графического интерфейса
- •4.3.1. Ввод-вывод с использованием элементов управления
- •4.3.2. Использование стандартного окна MessageBox для вывода сообщений
Перечисление 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 |
знак умножения |
|
|
|
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 (символ '←')
*/