Создание Windows-приложений на основе Visual C#


           

Класс UserControl1 наследует от класса


2.D:\Uchebnik\Code\Glava3\UserInput\UserControl1.cs(44): Argument '1': cannot convert from 'UserInput.UserControl1' to 'System.Windows.Forms.Form'

Класс UserControl1 наследует от класса UserControl:

public class UserControl1 : System.Windows.Forms.UserControl

Обычный класс Windows-приложения наследует от класса Form:

public class Form1 : System.Windows.Forms.Form

Закомментируем наследование этого класса (не удалим!) и добавим наследование от класса Form:

public class UserControl1 : System.Windows.Forms.Form

Вид формы в режиме дизайна изменится на стандартный шаблон — с заголовком, который теперь запускается. Итак, для преобразования композитной формы мы изменили выходной тип проекта, добавили метод Main и изменили наследование классов. Проделав обратные шаги, мы можем получить снова композитную форму или преобразовать обычную форму в композитную.

Займемся теперь созданием функциональности. Добавляем на форму три надписи, текстовое поле, ErrorProvider и элемент управления NumericUpDown (рис. 3.12):


Рис. 3.12.  Проект UserInput, расположение элементов управления на форме

Две надписи будут статичными, а на третью будут выводиться сообщения при ошибках. Установим свойству Name этой надписи значение lbloutput. Устанавливаем следующие значения текстового поля, элементов ErrorProvider и NumericUpDown:

textBox1, свойствоЗначение
NametxtName
Text
numericUpDown1, свойствоЗначение
NamenumUDAge
Maximum100
Minimum1
Value25
errorProvider1, свойствоЗначение
BlinkStyleAlwaysBlink
Icon
Code\Glava3\UserInput\Icon\none.ico


Проверять ввод значений будем в текстовом поле и элементе NumericUpDown. В окне Properties создаем обработчиков событий Validated элементов:

private void txtName_Validated(object sender, System.EventArgs e) { if(nameValid()) { // Все правильно, удаляем сообщение с надписи errorProvider1.SetError(txtName, ""); } else { //Поле не заполнено — выводим сообщение errorProvider1.SetError(txtName, "Name is required."); lbloutput.Text = "Введите имя!"; }


Содержание  Назад  Вперед