Поделиться через


Разработка пользовательского элемента управления

Обновлен: Ноябрь 2007

Платформа .NET Compact Framework предоставляет элементы управления Windows Forms, которые могут соответствовать требованиям большинства проектов устройств. Эти элементы управления предназначены для эффективного использования ограниченных ресурсов и поэтому не поддерживают все наследуемые свойства, методы и события. Для поддержки отсутствующих функциональных возможностей можно создать собственные пользовательские элементы управления на основе стандартных. Пользовательский элемент управления можно создать путем определения открытого типа, который наследует от класса Control или от существующего класса UserControl в сборке.

Простейшая настройка элемента управления переопределяет метод в стандартном элементе управления. Например, можно переопределить наследуемый метод OnKeyPress для элемента управления TextBox, чтобы применить код, ограничивающий ввод только цифр.

4yf3whkx.alert_note(ru-ru,VS.90).gifПримечание.

.NET Compact Framework не поддерживает все свойства, методы и события в элементах управления Windows Forms, наследуемых от их базовых элементов управления.

Можно создать элементы управления производные стандартных в следующих целях:

  • Переопределение собственных свойств, методов и событий в стандартном элементе управления.

  • Определение дополнительных свойств, методов и событий для элемента управления.

  • Построение составного элемента управления, такого как TextBox и Button.

  • Определение того, как элемент управления, такой как TextBox, который принимает только числовые данные, отвечает на действия пользователя.

В настоящее время .NET Compact Framework не поддерживает добавление пользовательского элемента управления для доступа во время разработки.

Если требуется более детальная настройка, необходимо создать пользовательский элемент управления, производный класса Control. Можно нарисовать элемент управления посредством переопределения метода OnPaint и создать элементы управления без пользовательского интерфейса для таких задач, как настраиваемые события.

Базовый класс Control не содержит сведений о способе рисования производного элемента управления и какой-либо логике рисования в методе OnPaint. Метод OnPaint класса Control только отправляет событие Paint зарегистрированным получателям событий.

.NET Compact Framework создает события Paint и Resize только для классов Form и Control.

Добавление пользовательских элементов управления к панели элементов

При создании проекта пользовательского элемента управления в приложении Microsoft Visual Studio 2005 он автоматически добавляется к Панели элементов в процессе компиляции приложения. Можно создать пользовательский элемент управления с помощью одного из следующих типов проекта:

  • Библиотека элементов управления

  • Библиотека классов

  • Библиотека классов (1.0)

Чтобы добавить пользовательский элемент управления к панели элементов, щелкните Выбор элементов панели элементов в меню "Сервис". Затем можно перейти к построению элемента управления.

Вопросы и методы разработки пользовательских элементов управления

При создании пользовательских элементов управления обратите внимание на следующее:

  • .NET Compact Framework не поддерживает наследование значений от родительского элемента управления, что возможно для некоторых элементов управления в полной версии NET Framework. Для решения этой проблемы можно использовать метод OnParentChanged, чтобы определить, когда изменяется родительский элемент, и выполнить соответствующее действие. В следующем примере кода показано изменение цвета фона при изменении родительского элемента:

    protected override void OnParentChanged(EventArgs e)
    {
        base.OnParentChanged(e);
        this.BackColor = Parent.BackColor;
    }
    
    Protected Overrides Sub OnParentChanged(ByVal e As EventArgs) 
        MyBase.OnParentChanged(e)
        Me.BackColor = Parent.BackColor
    End Sub
    
  • .NET Compact Framework не поддерживает наследование шрифта родительского элемента управления.

  • Чтобы обнаружить в пользовательском элементе управления местоположение события "касание и удерживание", созданного для отображения контекстного меню, обработайте событие Popup и затем запросите текущие координаты указателя мыши с помощью свойства MousePosition.

  • Чтобы перейти от пользовательского элемента управления к предыдущему элементу управления, используйте следующий код в обработчике событий KeyDown, когда определяется клавиша Up.

    this.Parent.Controls(
        this.Parent.GetChildIndex(customcontrol) - 1).Focus()
    
    Me.Parent.Controls( _
        Me.Parent.GetChildIndex(customcontrol) - 1).Focus
    

Практические руководства

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

Практическое руководство. Создание пользовательских событий двойного щелчка

Практическое руководство. Создание пользовательского элемента управления "кнопка"

Пошаговое руководство. Отображение градиентной заливки

Пошаговое руководство. Создание текстового поля для цифровых значений

Практическое руководство. Создание окна списка, внешний вид которого определяется владельцем

Практическое руководство. Создание функциональности OnEnter

Практическое руководство. Прокрутка содержимого формы

Практическое руководство. Сортировка элементов ListView

Практическое руководство. Реализация подкласса TreeView с помощью функций обратного вызова на машинном коде

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

См. также

Основные понятия

Создание подклассов элементов управления при помощи управляемой процедуры окна

Другие ресурсы

Элементы управления Windows Forms, используемые в платформе .NET Compact Framework