Создание пользовательской формы для 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.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
6.2. Создание полей формы
6.2. Создание полей формы Теперь приступим к самому интересному – к созданию полей для форм. Полей, из которых можно составить форму, очень много, поэтому надо внимательно следить за выбором поля для представления конкретной информации. Говоря о каждом из видов, мы будем
Создание Web-формы
Создание Web-формы На очереди — Web-форма, в которую посетитель будет вводить искомое слово или его часть. Вот только куда ее поместить? Давайте пока что вставим ее в контейнер cnavbar, ниже полосы навигации, непосредственно перед закрывающим тегом </DIV>, формирующим этот
Создание Web-формы
Создание Web-формы На очереди — Web-форма, в которую посетитель будет вводить искомое слово или его часть. Вот только куда ее поместить? Давайте пока что вставим ее в контейнер cnavbar, ниже полосы навигации, непосредственно перед закрывающим тегом </DIV>, формирующим этот
Создание формы для газона
Создание формы для газона Создадим газоны в программе Landscaping and Deck Designer и посмотрим, как с помощью стандартных компонентов из библиотеки приложения преобразить их внешний вид.Откройте программу, щелкнув кнопкой мыши на ярлыке приложения на Рабочем столе.На верхней
Создание новой формы
Создание новой формы Microsoft Office Access 2007 предоставляет разнообразные способы создания форм в зависимости от необходимой функциональности и сложности. Можно создавать следующие виды форм:• обычная форма с помощью инструмента Форма ;• разделенная форма с помощью
Создание формы
Создание формы Для создания новой формы VBA выберите Insert=UserForm из меню редактора Visual Basic или из контекстного меню (вызываемого щелчком правой кнопки мыши) в окне проводника проектов. Новая форма (точнее, заготовка новой формы) появится в специально созданном для нее окне, а
Создание выделения произвольной формы
Создание выделения произвольной формы Для создания выделения применяется целый ряд инструментов, каждый из которых предназначен для решения своих особых задач:• Rectangular Marquee (Прямоугольное выделение) – создает выделения прямоугольной и квадратной формы;• Elliptical Marquee
Создание родительской формы
Создание родительской формы Для демонстрации основ процесса построения MDI-приложения создайте новое приложение Windows, назвав его SimpleMdiApp. При этом почти вся MDI-ин-фраструктура может быть назначена исходной форме с помощью различных инструментов проектирования. Сначала
Создание дочерней формы
Создание дочерней формы Теперь, когда у вас есть оболочка MDI-контейнера, нужно создать дополнительную форму, выполняющую роль прототипа для данного дочернего окна. Начните со вставки нового типа Form в имеющийся проект (используйте Project?Add Windows Form), присвойте этому типу имя
Реализация CarControl
Реализация CarControl После этой подготовительной работы по созданию пользовательского интерфейса вы можете приступить к реализации членов типа. Сначала создайте новый общедоступный перечень AnimFrames, который будет иметь члены, представляющие каждый элемент из ImageList. Этот
Тестирование типа CarControl
Тестирование типа CarControl При запуске или отладке проекта Windows Control Library в Visual Studio 2005 иcпользуется UserControl Test Container (испытательный контейнер пользовательских элементов управления). Это управляемый вариант теперь уже устаревшего ActiveX Control Test Container (испытательный контейнер
Создание пользовательской страницы тестирования
Создание пользовательской страницы тестирования Если вы хотите, чтобы среда выполнения ASP.NET применяла пользовательский файл *.aspx для проверки ваших Web-сервисов XML, вы можете встроить в эту страницу дополнительную информацию (например, фирменный знак компании,
Создание приложения без формы
Создание приложения без формы В некоторых случаях необходимо иметь приложение, которое, запустившись, не выводит на экран форму или вообще не имеет и не создает форм. Создать такое приложение очень просто. Эта технология рассматривается в следующем
Создание фонового рисунка для формы
Создание фонового рисунка для формы К сожалению, .NET Compact Framework не поддерживает свойство BackgroundImage, которое создает фоновый рисунок для формы. Но каждый программист может восполнить данный пробел, переопределяя метод OnPaint.Нужно создать новый проект и разместить на форме
Создание формы с помощью мастера форм
Создание формы с помощью мастера форм Использование мастера форм является самым удобным и быстрым способом создания формы, в которой объединены сведения из разных таблиц или запросов. При использовании мастера форм для выбора полей из одной или нескольких таблиц или