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


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

Обновлен: Июль 2008

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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());.

    3. Откройте форму Form2 в режиме просмотра кода.

    4. Добавьте следующий метод прямо перед строкой, которая читает public Form2(). Это позволит форме Form2 выступать в роли объекта запуска.

      static void Main()
      {
         Application.Run(new Form2());
      }
      

    — или —

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

    1. Откройте форму Form2 в режиме просмотра кода.

    2. Добавьте следующий метод. Это точка входа для приложения InheritanceTest.

      // The main entry point for the application.
      /** @attribute System.STAThreadAttribute() */
      public static void main(String[] args) 
      {
         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

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

Дата

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

Причина

Июль 2008

Обновленные шаги Visual Studio 2005 и Visual Studio 2008.

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