Главная » Компоненты

Дополнительная отрисовка компонентов

Добавлено Дата: 29 January, 2011 категория: C#, Компоненты

Продолжаем изучать возможности, предоставляемые классом дизайнера. Довольно часто у авторов компонентов возникает желание увековечить свое имя и авторство. Указывать такую информацию во время выполнения программы было бы глупо, такой компонент никому не нужен. А вот компонент, отображающий авторскую информацию во время разработки, вполне можно вытерпеть.

Читать »

Связь свойств между собой

Добавлено Дата: 28 January, 2011 категория: C#, Компоненты

В этом разделе я хочу рассказать о не совсем очевидном способе привязки одного свойства компонента к свойству друюго. В принципе, ничего нового в этом нет, и реальность такого действия следует из возможностей простой привязки данных. Тем не менее прямая связь свойств между собой настолько удобна, что стоит отдельных слов.

Читать »

Контекстная подсказка компонента

Добавлено Дата: 28 January, 2011 категория: C#, Компоненты

Конечно, не все программисты, использующие ваш компонент, смогут догадаться о назначении его свойств и методов. Было бы хорошо добавить возможность запуска подсказки по нажатию клавиши <П>. Для этих целей используется сервис iHelpService:

О метод void AddContextAttribute(string name, string value, HelpKeywordType

Читать »

Потоки в C# правила использования

Добавлено Дата: 27 January, 2011 категория: C#, Компоненты

Часто длительные операции, такие как поиск файлов, анализ данных и т. п., выносят в отдельный поток (thread). Если же при этом нужно отображать прогресс выполнения операции, то возникает проблема доступа к компонентам (например, к компоненту progressBar) из одного или нескольких потоков, с которой мы попробуем разобраться в этом разделе.

Читать »

Контейнеры

Добавлено Дата: 27 January, 2011 категория: C#, Компоненты

Процесс разработки формы заключается в расположении компонентов на форме или на других компонентах. Другими словами, каждый компонент и сама форма (вообще говоря, форма тоже является компонентом) являются контейнерами (container), которые могут содержать один или несколько компонентов. Для реализации такой возможности предусмотрен интерфейс System. ComponentModel.IContainer:

Читать »

Вывод отладочной информации

Добавлено Дата: 27 January, 2011 категория: C#, Компоненты

В предыдущем разделе я выводил строки прямо в содержимое компонента ListBox. Для отладочных целей это неплохо, но для реального компонента такой путь не очень удачен. Гораздо лучше выводить отладочные сообщения туда, куда их положено выводить— в окно Output среды. Получить ссылку на это окно и вывести сообщение можно с помощью кода, показанного в листинге 7.13.

Читать »

Транзакции дизайнера

Добавлено Дата: 26 January, 2011 категория: C#, Компоненты

В разд. 6.5 я приводил код компонента градиентной заливки GradientLabei. С помощью контекстного меню цвета начала и завершения заливки менялись местами. Код этого метода выглядел следующим образом:

PropertyDescriptor start = GetPropertyByName("StartColor"); PropertyDescriptor end = GetPropertyByName("EndColor"}; Color trop = (Color}start.GetValue(glabel}; start.SetValue(glabel, end.GetValue(glabel}); end.SetValue(glabel, tup);

Читать »

Свойство, событие и значение по умолчанию

Добавлено Дата: 25 January, 2011 категория: C#, Компоненты

Атрибут компонента Default property указывает свойство по умолчанию. Это свойство будет активно в редакторе свойств при его открытии первый раз:

[DefaultProperty{"Text")] public class Label : Control

Обычно в качестве такого свойства указывается наиболее "часто исправляемое" свойство. Для кнопки и текстового поля это свойство Text, для списка строк                    свойство Items.

Читать »

Особенности разработки компонентов

Добавлено Дата: 21 January, 2011 категория: C#, Компоненты

В отличие от обычного класса, разработка компонента имеет особенности, которые следует учитывать, принимая решение о создании компонента.

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

Читать »

Реакция на изменение свойств

Добавлено Дата: 19 January, 2011 категория: C#, Компоненты

Дотошный читатель, выполняющий все шаги вместе со мной, давно уже заметил, что изменение значений наших свойств StartColor и EndColor на виде самого компонента сказывается совсем не сразу (точнее, оно отображается при любой вынужденной перерисовке компонента, например, при смене выделенного компонента). Действительно, ведь никто не сообщает компоненту, что ему нужно немедленно перерисовать себя!

Читать »

Взаимодействие с палитрой компонентов

Добавлено Дата: 18 January, 2011 категория: C#, Компоненты

Само по себе взаимодействие с палитрой компонентов (Toolbox) обычному компоненту не требуется. Скорее всего, такая возможность нужна дизайнеру формы. Но, тем не менее, это может оказаться полезным и в других случаях. В этом разделе я расскажу о сервисе TooiboxServi.ee, который позволяет не только получать информацию о зарегистрированных компонентах и управлять палитрой компонентов, но и программно добавлять компоненты на форму. Сервис TooiboxService имеет следующие свойства и методы (приведены только самые интересные):

Читать »

События примеры для C#

Добавлено Дата: 17 January, 2011 категория: C#, Компоненты

позволяют компонентам общаться между собой и программой. Например, если форма хочет каким-то о.бразом обрабатывать нажатие па кнопку, то ей необходимо обрабатывать событие Click этой кнопки. Каждый компонент имеет множество событий, позволяющих реагировать на внутреннюю жизнь компонента или обрабатывать его реакцию на внешние событ ия; нажатие на клавиши, движения мыши, изменение размера и т. д. Обычно обработчиками событий являются методы формы, на которой расположен компонент.

Читать »

Что такое дизайнер

Добавлено Дата: 17 January, 2011 категория: C#, Компоненты

Для того чтобы компонент мог общаться с редактором свойств, формой, на которой он расположен, и другими компонентами, используются специальные классы, называемые дгнагшерами (designers). Клаусы дизайнеров расположены В пространствах имен Зул !_е.т. W i                             . iI7LS , Do.5 ; qv, я

Читать »

Конвертеры типов .NET Framework 2.0

Добавлено Дата: 16 January, 2011 категория: C#, Компоненты

Библиотека .NET Framework содержит множество конвертеров. Я приведу лишь несколько из них:

?  System. ComponentModel.BaseNumberConverter—базовый класс ДЛЯ преобразования числовых значений. От него наследованы многие конвертеры, такие как ByteConverter, DecimalConverter, Intl6Converter И Др.;

Читать »

Палитра компонентов

Добавлено Дата: 15 January, 2011 категория: C#, Компоненты

Окно Toolbox (Инструменты) во время редактирования формы превращается в набор компонентов (рис. 2.7). Название окна, которое пришло из Visual Basic, при этом никак не меняется, что, мне кажется, не совсем удачно. Правильнее было бы назвать это окно "палитрой компонентов", как это было в Delphi. С другой стороны, сюда же вынесли содержимое буфера обмена2, так что и на чистый набор компонентов это тоже не очень похоже. Давайте договоримся, что содержимое окна Toolbox (Инструменты), когда мы находимся в редакторе форм и видим набор компонентой, мы будем называть палитрой компонентов. Так будет более понятно.

Читать »