Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Создание пользовательской формы для CarControl
Создание пользовательской формы для CarControl
Как и в случае любого другого .NET-типа, вы можете использовать свой элемент управления в рамках любого языка, совместимого со средой CLR. Закройте текущее рабочее пространство и создайте новый C#-проект Windows Application с именем CarControlTestForm. Чтобы сослаться на пользовательские элементы управления из Visual Studio 2005, щелкните правой кнопкой мыши в любом месте окна Toolbox и выберите пункт меню Choose Item (Выбрать элемент). Используя кнопку Browse (Просмотр) на вкладке .NET Framework Components (Компоненты .NET), перейдите к своей библиотеке CarControlLibrary.dll. После щелчка на кнопке OK вы обнаружите в панели инструментов новую пиктограмму с названием, конечно же, CarControl.
После этого поместите новый элемент CarControl в окно проектирования формы. Обратите внимание на то, что при этом свойства Animate, PetName и Speed тоже появляются в окне свойств. Точно так же, как и в случае испытательного контейнера, ваш элемент управления "живет своей жизнью" в режиме проектирования. Поэтому, если вы установите для свойства Animate значение true, вы увидите анимацию автомобиля в окне проектирования формы.
Сконфигурировав начальное состояние CarControl, добавьте дополнительные элементы графического интерфейса, которые дозволят увеличивать и уменьшать скорость автомобиля, а также видеть текущую скорость автомобиля и строковые данные, посылаемые генерируемыми событиями (для этого вполне подойдут элементы управления Label). Один из возможных вариантов показан на рис. 21.30.
Рис. 21.30. Графический интерфейс клиента
В предположении о том, что вы создали графический пользовательский интерфейс, аналогичный показанному на рисунке, программный код в рамках вашего типа Form должен быть очень простым (здесь я предполагаю, что вы обработали каждое из событий CarControl с помощью окна свойств).
public partial class MainForm: Form {
public MainForm() {
InitializeComponent();
lblCurrentitSpeed.Text = string.Format("Текущая скорость: {0}", this.myCarControl.Speed.ToString());
numericUpDownCarSpeed.Value = myCarControl1.Speed;
}
private void numericUpDownCarSpeed_ValueChanged(object sender, EventArgs e) {
// Предполагается, что минимум NumericUpDown равен 0,
// а максимум - 300.
this.myCarControl.Speed = (int)numericUpDownCarSpeed.Value;
lblCurrentSpeed.Text = string.Format("Текущая скорость: {0}", this.myCarControl.Speed.ToString());
}
private void myCarControl_AboutToBlow(string msg) {
lblEventData.Text = string.Format("Данные события: {0}", msg);
}
private void myCarControl_BlewUp(string msg) {
lblEventData.Text = string.Format("Данные событий: {0}", msg);
}
}
Теперь вы можете запустить ваше приложение клиента на выполнение и проверить его взаимодействие с CarControl. Как видите, задача построения и использования пользовательских элементов управления оказывается достаточно простой, конечно, при условии, что вы уже имеете достаточные знания об ООП, системе типов .NET, GDI+ (т.е. о System.Drawing.dll) и Windows Forms.
Вы сейчас имеете достаточно информации для того, чтобы продолжить исследование процесса разработки элементов управления Windows в .NET, но здесь следует учитывать еще один программный аспект: функциональные возможности режима проектирования. Перед тем как дать точное описание упомянутой проблемы, мы с вами должны обсудить роль пространства имен System.ComponentModel.
- Элементы управления Windows Forms
- Добавление элементов управления в форму вручную
- Добавление элементов управления в форму в Visual Studio 2005
- Работа с базовыми элементами управления
- Порядок переходов по нажатию клавиши табуляции
- Работа с другими элементами управления
- Создание пользовательских элементов управления Windows Forms
- Тестирование типа CarControl
- Создание пользовательской формы для CarControl
- Пространство имен System.ComponentModel
- Создание пользовательских диалоговых окон
- Динамическое позиционирование элементов управления Windows Forms
- Резюме
- Создание файлов с блокировкой
- Создание свободно позиционируемых элементов
- Глава 5 Агрессивные формы кода и борьба с ними
- 12. Лекция: Создание приложений с графическим интерфейсом пользователя.
- Создание объектов Collection
- 7.4.2.4. Создание своего первого LiveCD
- 4.2. Создание трехмерной модели и построение горизонтальной проекции детали
- 7.4.2. Создание собственного LiveCD
- Создание пользователя и группы на рабочей станции
- Создание корня документа:
- Создание многофайловой базы данных
- Создание форм с несколькими вкладками