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

Слои и маркеры

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

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

Читать »

Сложное свойство

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

является классом, объединяющим несколько свойств. Для нашего класса градиентной заливки GradientLabel сложное свойство может объединять свойства startcoior и EndCoior. Пример такого класса я привел в листинге 8.1, а листинг 8.2 показывает обновленный класс GradientLabel, использующий новое свойство. Фактически я сохранил всю функциональность. Свойства startcoior и EndCoior, как и раньше, сохраняют начальный н конечный цвета градиентной заливки.

Читать »

Настраиваемые свойства

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

Очень часто свойства компонента одновременно оказываются и настройками программы или системы. Например, свойства PortName и BaudRate компонента SerialPort, очевидно, являются настройками системы. Было бы очень неудобно хранить эти настройки в коде программы и перекомпилировать ее при изменении номера порта или скорости обмена.

Читать »

Реализация собственного редактора типа

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

Теперь разберемся с методами класса UlTypeEditor более подробно. С методом GetEditstyle {} все просто. Если этот метод возвращает uiTypeEditorEditstyie. DropDown, то отображается небольшой треугольник, как у компонента DropDown. Значение UiTypeEditorEditstyie.Modal отображает кнопку с тремя точками, как у компонента выбора файла.

Читать »

Управление окнами Visual Studio

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

Еще одно применение сервиса IUlServiceTestDesigner-—управление окнами Visual Studio. Метод

bool ShowToolWindow(Guid toolWindow)

позволяет отобразить одно из окон, описанных в перечислении

StandardToolWindows: ObjectBrowser, OutputWindow, ProjectExplorer, PropertyBrowser, RelatedLinks, ServerExplorer, TaskList, Toolbox.

Читать »

Интерфейсы

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

Интерфейс — это именованный набор сигнатур методов (см. [5]). могут определять события и свойства, но не могут определять методов- конструкторов и экземплярных полей.

В С# для определения интерфейса используется ключевое слово interface, например:

Читать »

Встроенные компоненты в CSharp примеры использования

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

В разд. 6.13 я уже рассказывал о компонентах, содержащих другие компоненты. Тогда для передачи Windows-сообщений мы использовали специальный обработчик wndproc. Это позволяло "выключать" режим дизайнера для внутренних компонентов, т. е. компоненты начинали работать так, как будто они работают в режиме выполнения. В этом разделе я хочу рассказать об интерфейсе TNestedContainer, позволяющем делать внутренние компоненты фактически реальными компонентами формы.

Читать »

Создание диалоговых окон в режиме разработки

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

Сервис iuiService позволяет создавать диалоговые окна в режиме разработки:

П методы void ShowMessage (string message), void ShowMessage {string message, string caption) И DialogResult ShowMessage(string message, string caption, MessageBoxButtons buttons) отображают диалоговое сообщение, как на рис. 7.9. Последний метод позволяет управлять количеством кнопок диалога;

Читать »

Провайдеры

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

Для начала сделаем простое приложение, состоящее из одной формы, и разместим на ней компонент Button (рис. 10.1). Посмотрите на код, появившийся в файле Form 1 .Designer.cs:

this.buttonl = new System.Windows.Forms.Button();

this.buttonl.Location = new System.Drawing.Point(72, 35);

Читать »

Динамическое управление набором свойств

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

В разд. 6.6 я показывал, как скрыть элементы из редактора свойств, а в разд. 5.4 рассказывал об атрибуте Browsabie. Но это было скрытие "насовсем", т. е. свойство просто не видно в режиме разработки. Сейчас я хочу показать, как сделать динамическое управление свойствами, когда некоторые свойства будут видны или скрыты в зависимости от значений других свойств. Добавим в наш компонент градиентной заливки свойство Gradient Active. Если оно имеет значение true, компонент показывает градиентную заливку, а если false, то работает как обычный компонент Label. Конечно, практического смысла это свойство не имеет, но в качестве примера вполне подходит. Соответствующий код показан в листинге 8.13.

Читать »