Отправляет email-рассылки с помощью сервиса Sendsay

Visual Basic.NET. Уроки

  Все выпуски  

Visual Basic.NET. Уроки


Информационный Канал Subscribe.Ru

Уроки по Visual Basic.NET. Рассылки сайта progs.biz
Выпуск № 73
 
Начало > VB.NET > Компоненты > Урок 10

Эпплман Д.Win32 API и Visual Basic.
Эпплман Д. Win32 API и Visual Basic
Заказать на Озоне

Подробнее


Полные версии уроков (с картинками): урок 10.

VB.NET. Создание компонентов
Урок 10. Реагируем на изменение шрифта контейнера

Хорошо написаные компоненты реагируют на изменение различных характеристих контейнера, на котором они расположены. Например, если вы разместите на форме метку (label) и для самой формы будете менять ее шрифт, наприер, так:

this.Font = new Font( "Arial", 12);

то шрифт на нашем label'е тоже поменяется соответствующим образом.

Давайте сделаем, чтобы наш компонент работал таким же образом - т. е. чтобы он менял свой шрифт, если последний будет изменен у формы.

Создайте проект для нового компонента (см. урок 1). Расположите на нем некоторый label. Именно он и будет менять свой шрифт. И, что самое важное, добавьте следующий код в класс нашего компонента:

    ...
    ' Обрабитка изменения шрифта контейнером.
    Protected Overrides Sub OnParentFontChanged(ByVal e As System.EventArgs)
        ' Перерисовываем при изменении
        ' шрифта контенера.
        Invalidate()
    End Sub

    ' Перерисовка.
    Protected Overrides Sub OnPaint _
      (ByVal e As System.Windows.Forms.PaintEventArgs)
        ' Устанавливаем наш шрифт
        ' как в контейнере.
        Font = Parent.Font
    End Sub
    ...

Логика тут такая - при изменении шрифта контейнером мы вызываем для компонента перерисовку (путем вызова метода Invalidate()) и затем в перерисовке (т. е. в методе OnPaint) мы задаем новый шрифт.

Можно компилировать и запускать тестовую программу (на которою, например, модно добавть к кнопку с приведенном в начале урока строкой по изменению шрифта). Теперь наш компонент будет изменять свой шрифт вслед за контейнером.

Обратите внимание, что такое поведение будет иметь место и на этапе разработки тестового проекта.

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX new!
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2005 сайт progs.biz
© 2002-2005 Алексеев Игорь

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.vblessons
Отписаться

В избранное