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


Пошаговое руководство. Демонстрация визуального наследования

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

  • Создавать проект библиотеки классов, содержащий базовую форму.

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

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

  • Создавать проект, содержащий форму, которая наследуется из BaseForm.

В конечном счете, в данном пошаговом руководстве описывается различие между закрытыми и защищенными элементами управления в наследуемой форме.

Примечание

Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих настроек или выпуска.Чтобы изменить параметры, выберите в меню Сервис пункт Импорт и экспорт параметров.Дополнительные сведения см. в разделе Работа с параметрами.

Предупреждение

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

    WebBrowser

    ToolStrip

    ToolStripPanel

    TableLayoutPanel

    FlowLayoutPanel

    DataGridView

Эти элементы управления в наследованной форме всегда доступны только для чтения, независимо от используемых модификаторов (private, protected или public).

Шаги сценария

Первым шагом является создание базовой формы.

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

  1. В меню Файл выберите Создать и щелкните пункт Проект, чтобы открыть диалоговое окно Создание проекта.

  2. Создайте приложение Windows Forms с именем BaseFormLibrary. Дополнительные сведения см. в разделе Практическое руководство. Создание проекта приложения Windows Forms.

  3. Чтобы создать библиотеку классов вместо стандартного приложения Windows Forms, щелкните правой кнопкой мыши узел проекта BaseFormLibrary в обозревателе решений и выберите пункт Свойства.

  4. В свойствах проекта измените Тип выходного файла с Приложение Windows на Библиотека классов.

  5. В меню Файл выберите Сохранить все, чтобы сохранить проект и файлы в расположении по умолчанию.

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

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

  1. Откройте форму Form1 в конструкторе.

  2. На вкладке Все формы Windows Forms Панели элементов дважды щелкните элемент Кнопка, чтобы добавить кнопку на форму. С помощью мыши определите положение и размер кнопки.

  3. В окне "Свойства" задайте следующие свойства кнопки.

    • Задайте свойству Текст значение для Привет.

    • Задайте для свойства (Имя) значение btnProtected.

    • Задайте для свойства Modifiers значение Protected. Это позволяет формам, наследуемым от формы Form1, изменять свойства со значением btnProtected.

  4. Дважды щелкните кнопку Привет, чтобы добавить обработчик событий Click для данной кнопки.

  5. Добавьте следующую строку кода в обработчик событий:

    MessageBox.Show("Hello, World!")
    
    MessageBox.Show("Hello, World!");
    

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

  1. Переключитесь в режим разработки, щелкнув вкладку Form1.vb [Design], Form1.cs [Design] или Form1.jsl [Design] над редактором кода или нажав клавишу F7.

  2. Добавьте вторую кнопку и установите ее свойства следующим образом.

    • Задайте свойству Текст значение для Пока.

    • Задайте для свойства (Имя) значение btnPrivate.

    • Задайте для свойства Modifiers значение Private. Это не позволит формам, наследуемым от формы Form1, изменять свойства со значением btnPrivate.

  3. Дважды щелкните кнопку Пока, чтобы добавить обработчик событий Click для данной кнопки. Добавьте следующую строку кода в процедуру обработки события:

    MessageBox.Show("Goodbye!")
    
    MessageBox.Show("Goodbye!");
    
  4. В меню Построение выберите команду Построить BaseForm Library, чтобы построить библиотеку классов.

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

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

  1. В меню Файл выберите Добавить и выберите Создать проект, чтобы открыть диалоговое окно Добавить новый проект.

  2. Создайте приложение Windows Forms с именем InheritanceTest. Дополнительные сведения см. в разделе Практическое руководство. Создание проекта приложения Windows Forms.

Чтобы добавить наследуемую форму, выполните следующие действия.

  1. В обозревателе решений щелкните правой кнопкой мыши проект InheritanceTest, выберите команду Добавить, а затем Добавить новый элемент.

  2. В диалоговом окне Добавить новый элемент выберите категорию Формы Windows Forms (если отображается список категорий) и выберите шаблон Наследуемая форма.

  3. Оставьте имя по умолчанию Form2 и нажмите кнопку Добавить.

  4. В диалоговом окне Выбор наследования выберите форму Form1 из проекта BaseFormLibrary в качестве формы, от которой производится наследование, и нажмите кнопку ОК.

    При этом создается форма в проекте InheritanceTest, наследуемая от формы в BaseFormLibrary.

  5. Откройте наследуемую форму (Form2) в конструкторе, дважды щелкнув ее, если она еще не была открыта.

    В конструкторе унаследованные кнопки имеют символ (Снимок экрана VisualBasicInheritanceSymbol) в верхнем углу, показывающий, что они унаследованные.

  6. Выберите кнопку Привет и просмотрите дескрипторы изменения размера. Так как данная кнопка защищена, наследники могут передвигать ее, изменять ее размер и заголовок и производить другие модификации.

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

  8. При использования Visual C#:

    1. В обозревателе решений щелкните правой кнопкой мыши форму Form1 в проекте InheritanceTest и выберите Удалить. В появившемся окне сообщений для подтверждения удаления нажмите кнопку ОК.

    2. Откройте файл Program.cs и измените строку Application.Run(new Form1()); на Application.Run(new Form2());.

  9. В обозревателе решений щелкните правой кнопкой мыши проект InheritanceTest и выберите Установить как запускаемый проект.

  10. В обозревателе решений щелкните правой кнопкой мыши проект InheritanceTest и выберите Свойства.

  11. На страницах свойств InheritanceTest задайте Начальный объект как наследуемую форму (Form2).

  12. Нажмите клавишу F5 для запуска приложения и проверьте работу наследуемой формы.

Следующие действия

Наследование для пользовательских элементов управления происходит практически таким же образом. Откройте новый проект библиотеки классов и добавьте пользовательский элемент управления. Разместите на нем составляющие элемента управления и скомпилируйте проект. Откройте еще один новый проект библиотеки классов и добавьте ссылку на скомпилированную библиотеку классов. Также попытайтесь добавить наследуемый элемент управления (с помощью диалогового окна Добавить новые элементы) к проекту, используя Выбор наследования. Добавьте пользовательский элемент управления и измените оператор Inherits (: в Visual C#). Дополнительные сведения см. в разделе Практическое руководство. Наследование форм Windows Forms.

См. также

Задачи

Практическое руководство. Наследование форм Windows Forms

Ссылки

Диалоговое окно выбора наследования

Пошаговые руководства по Windows Forms

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

Визуальное наследование в Windows Forms

Windows Forms

Журнал изменений

Дата

Журнал

Причина

сентябрь 2010 г.

Исправлен шаг.

Обратная связь от клиента.