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

Разработка компонентов работы с данными

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

В качестве примера я покажу компонент BoundListview, который является наследником обычного Listview, но с возможностью привязки данных. Для начала мне потребуются свойства Datasource и DataMember. Их описание достаточно стандартно, и его можно использовать независимо от типа компонента. Описание DataSource выглядит так:

Читать »

Управление сериализацией

Добавлено Дата: 30 December, 2010 категория: C#, Компоненты

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

Указать необходимость сериализации можно с помощью атрибута

Читать »

Класс UlTypeEditor

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

Создание нового редактора типа заключается в создании наследника класса System.Drawing.Design.UlTypeEditor, который привязывается к редактируемому свойству с помощью атрибута Edit or At tribute:

[Editor (typeof (MyPropertyEditor), typeof (UlTypeEditor) ) ] public byte MyProperty

Читать »

Управление событиями компонента

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

производится с помощью сервиса

iEventBindingService. Вот его основные методы:

?         метод string             CreateUniqueMethodName (IComponent           component, EventDescriptor e} генерирует уникальное имя события;

Читать »

Добавление закладки в редактор свойств

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

Стандартный редактор свойств нмеет две кнопки, переключающие его закладки. При нажатии на одну из ннх открывается список свойств компонента, а при нажатин на другую — список обработчиков событий. В этом разделе я хочу рассказать, как добавить свою кнопку и закладку в редактор свойств. Сама закладка редактора свойств описывается с помощью класса System.Windows. Forms. Design.PropertyTab. Для реализации своей закладки нужно перекрыть несколько свойств н методов (листинг 12.7):

Читать »

Компоненты или элементы управления?

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

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

Читать »

Стандартный набор значений

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

Для enum-типов в редакторе свойств отображается выпадающий список с перечислением всех возможных значений этого типа. Это происходит автоматически, т. к. редактор типа знает, что других значений быть не может. Для других типов, не имеющих определенного набора значений, можно реализовать стандартный набор значений (standard values).

Читать »

Классы стандартных редакторов типов

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

В этом разделе я хочу просто привести список некоторых стандартных редакторов типов. Про некоторые из них я еще расскажу.

В пространстве имен system.ComponentModel.Design определены такие редакторы типов:

?       BinaryEditor — редактор бинарных данных (рис. 9.2);

Читать »

Хосты

Добавлено Дата: 24 December, 2010 категория: C#, Компоненты

Управление режимом разработки, созданием и уничтожением компонентов формы, загрузкой формы и т.д. осуществляется с помощью интерфейса System.CompoentModel. Design. IDesignerHost, который называется ХОСШОМ (host):

public interface IDesignerHost : IServiceContainer, IServiceProvider I

Читать »

Стандартная привязка данных

Добавлено Дата: 23 December, 2010 категория: C#, Компоненты

Посмотрим еще раз на привязку списка записей customer:

BindingList<Customer> list — new BindingList<Customer>(); list.Add(new Customer(0, "Mr. Zero", 10.0M)); list.Add(new Customer(l, "Mr. One" , 15.0M)); list.Add(new Customer(2, "Mr. Two" , 20.0M))?

Читать »

"Горячие" команды формы

Добавлено Дата: 20 December, 2010 категория: C#, Компоненты

Метод AddCommand сервиса I Menu Commands е г vice позволяет создавать обработчики "горячих" команд, как показано в листинге 7.5. Обратите внимание, что перед тем как добавить пункт меню, его надо удалить, чтобы избежать дублирования. Конкретная команда назначается с помощью класса MenuCommands или standardcommands. Эти команды не являются напрямую отражением клавиатурных комбинаций, это именно набор команд (листинг 7.6). Например, LockCommand или Brii tF r,v iro нс ЯИЛЯЮ1СЯ кодлми кгтииш

Читать »

Дизайнер формы

Добавлено Дата: 20 December, 2010 категория: C#, Компоненты

(form designer) имеет три маркера для изменения размера формы. С их помощью можно увеличить или уменьшить размер формы по высоте и ширине или одновременно по обоим параметрам, пропорционально (рис. 2.2).

Если на форме выбрать какой-нибудь элемент, то редактор показывает маркеры изменения размеров и положения этого элемента (glyph). Причем, как видно на рис. 2.3, маркеры меняются в зависимости от реальной возможности изменять размеры. Так, компонент Button можно менять по веем параметрам (во всех направлениях), а для компонента CheckBox доступно только изменение положения компонента на форме. Соответственно, компонент Button имеет восемь маркеров, а компонент checkBox только один.

Читать »

Метаинформация, отражение и атрибуты

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

Взаимодействие частей программ между собой подразумевает наличие информации о предоставляемых ими возможностях. Например, к библиотеке DLL прилагается заголовочный файл, описывающий экспортируемые данные, процедуры и структуру типов. Для СОМ-компонента описание хранится в idl-файле или в виде библиотеки типов.

Читать »

Прямая обработка очереди сообщений

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

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

Читать »

Сервис IPropertyValueUIService

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

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

Это дает дополнительные возможности редактору свойств. Например, я покажу, как использовать этот сервис для отображения ошибочных значений.

Читать »