Прошел курс. Получил код Dreamspark. Ввожу код на сайте, пишет: Срок действия этого кода проверки уже истек. Проверьте, правильно ли введен код. У вас осталось две попытки. Вы также можете выбрать другой способ проверки или предоставить соответствующие документы, подтверждающие ваш академический статус.
Как активировать код? |
Стандартные элементы управления
Текстовые элементы управления
В библиотеке .NET Framework 2.0 в пространстве имен { } System.Windows.Forms имеется абстрактный класс TextBoxBase, который обеспечивает производные от него классы множеством возможностей по редактированию текста. Цепочка наследования этих классов выглядит так
Из рисунка видно, что существуют 5 классов, способных порождать текстовые элементы управления:
- MaskedTextBox
- RichTextBox
- TextBox
- DataGridTextBox
- DataGridViewTextBoxEditingControl
Мы рассмотрим первые три класса как наиболее простые. Каждый из них имеет свойство Text типа string, в котором хранится редактируемая в элементе информация. Большинство других свойств принимают булево значение и определяют режим работы элемента.
Текстовый элемент с маской MaskedTextBox
Этот элемент удобно применить в том случае, когда нужно контролировать пользовательский ввод. Приведем пример с вводом телефонного номера. Вот какое поле ввода можно было бы предоставить пользователю
using System; using System.Drawing; using System.Windows.Forms; namespace Test { // Класс приложения class MyClass : Form { // Объявляем ссылку на элемент поля ввода телефона MaskedTextBox phone; public MyClass() // Конструктор { // Код из конструктора переносим в обработчик this.Load += new EventHandler(MyClass_Load); } void MyClass_Load(object sender, EventArgs e) { // Текст заголовка окна this.Text = "Элемент MaskedTextBox"; // Отключаем размеры this.MaximizeBox = false; this.FormBorderStyle = FormBorderStyle.FixedSingle; // Создаем элемент маскированного поля ввода телефона phone = new MaskedTextBox(); phone.Parent = this;// Привязываем к форме // Настраиваем маскированное поле ввода int x = (this.ClientSize.Width - phone.Width) / 2; int y = this.ClientSize.Height / 3 - phone.Height; phone.Location = new Point(x, y); phone.Mask = "00-00-00"; Font font = new Font("Arial", 12, FontStyle.Bold); phone.Font = font; phone.ForeColor = Color.Blue;// Синий // Регистрируем событие, когда символ не может быть принят полем phone.MaskInputRejected += phone_MaskInputRejected; // Создаем и настраиваем текстовую метку Label label = new Label(); label.Text = "Введите номер телефона"; label.Parent = this; label.Width = this.ClientSize.Width; label.Font = font; label.ForeColor = Color.FromArgb(255, 0, 0);// Красный // Позиционируем метку над полем ввода label.Location = new Point(10, phone.Location.Y - label.Height - 10); } ToolTip toolTip = new ToolTip();// Содаем объект всплывающей подсказки void phone_MaskInputRejected(object sender, MaskInputRejectedEventArgs e) { if (phone.MaskFull) { toolTip.ToolTipTitle = "Ввод отклонен - поле заполнено"; // Позиционируем всплывающую подсказку относительно поля ввода toolTip.Show("Вы пытаетесь ввести" + "\n" + "слишком длинный номер", phone, // Привязка к элементу -phone.Location.X,// Сдвинули в начало окна phone.Height, // Сдвинули к низу поля ввода 3000);// Подсказка ждет 3 секунды } else if (e.Position >= phone.Mask.Length) { toolTip.ToolTipTitle = "Ввод отклонен - выход за границу"; // Позиционируем всплывающую подсказку относительно поля ввода toolTip.Show("Не могу добавить новый символ\nза границей поля ввода", phone, // Привязка к элементу -phone.Location.X,// Сдвинули в начало окна phone.Height, // Сдвинули к низу поля ввода 3000);// Подсказка ждет 3 секунды } else { toolTip.ToolTipTitle = "Ввод отклонен - нужны цифры"; // Позиционируем всплывающую подсказку относительно поля ввода toolTip.Show( "Номер телефона должен состоять только из цифр (0-9)", phone, // Привязка к элементу -phone.Location.X,// Сдвинули в начало окна phone.Height, // Сдвинули к низу поля ввода 3000);// Подсказка ждет 3 секунды } } } // Запуск class Program { static void Main() { Application.EnableVisualStyles(); Application.Run(new MyClass()); } } }Листинг 15.5 . Применение MaskedTextBox для контроля ввода телефонного номера
Результат выполнения выглядит так
Элементы строкового свойства Mask могут быть такими
Маскирующий элемент | Пояснения |
---|---|
0 | Ожидает любую цифру от 0 до 9 |
9 | Ожидается цифра или пробел |
# | Ожидается цифра, пробел, знаки + или - |
L | Ожидаются ASCII -символы от a до z или от A до Z |
? | Ожидаются любые ASCII -символы |
& | Ожидается любой символ. Если свойство AsciiOnly равно true, то работает как элемент "L" |
C | Ожидается любой неуправляющий символ. Если свойство AsciiOnly равно true, то работает как элемент "?" |
A | Ожидает любые алфавитно-цифровые символы. Если AsciiOnly равно true, то работает как элемент "L" |
И так далее по MSDN … |