Читаем Язык программирования С# 2005 и платформа .NET 2.0. полностью

Сконфигурировав начальное состояние 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.

<p>Пространство имен System.ComponentModel</p>

Пространство имен System.ComponentModel определяет целый ряд атрибутов (и других типов), позволяющих описать то, как должны вести себя ваши элементы управления в режиме проектирования. Например, вы можете указать текстовое описание каждого свойства, определить событие, выбранное по умолчанию, или сгруппировать ряд свойств или событий в пользовательскую категорию, чтобы они отображались вместе в окне свойств Visual Studio 2005. Чтобы выполнить указанные модификации, вы должны использовать атрибуты, показанные в табл. 21.12.

Таблица 21.12. Подборка членов System.ComponentModel

Перейти на страницу:

Похожие книги

97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT