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


Практическое руководство. Использование свойств Modifiers и GenerateMember

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

При размещении компонента в форме Windows Forms два свойства предоставляются средой разработки: GenerateMember и Modifiers. Свойство GenerateMember указывает, когда конструктор Windows Forms создает переменную-элемент для компонента. Свойство Modifiers — это модификатор доступа, назначенный этой переменной-элементу. Если значение свойства GenerateMember равно false, значение свойства Modifiers не действует.

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

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

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

  1. В конструкторе Windows Forms откройте форму.

  2. Перетащите три элемента управления Button из панели элементов в форму.

  3. Установите свойства GenerateMember и Modifiers для каждого элемента управления Button в соответствии со следующей таблицей.

    Имя кнопки

    Значение GenerateMember

    Значение модификатора

    button1

    true

    private

    button2

    true

    protected

    button3

    false

    Без изменений.

  4. Выполните сборку решения.

  5. Нажмите кнопку Показать все файлы в Обозревателе решений.

  6. Откройте узел Form1 и в редакторе кодаоткройте Form1.Designer.vb или Form1.Designer.cs. Этот файл содержит код, созданный конструктором Windows Forms.

  7. Найдите объявления для этих трех кнопок. В следующем примере программы показаны различия, указанные свойствами GenerateMember и Modifiers.

    Private Sub InitializeComponent()
    
        ' button3 is declared in a local scope, because 
        ' its GenerateMember property is false.
        Dim button3 As System.Windows.Forms.Button
        Me.button1 = New System.Windows.Forms.Button()
        Me.button2 = New System.Windows.Forms.Button()
        button3 = New System.Windows.Forms.Button()
    
    private void InitializeComponent()
    {   
        // button3 is declared in a local scope, because 
        // its GenerateMember property is false.
        System.Windows.Forms.Button button3;
        this.button1 = new System.Windows.Forms.Button();
        this.button2 = new System.Windows.Forms.Button();
        button3 = new System.Windows.Forms.Button();
    
     ' The Modifiers property for button1 is "Private".
     Private button1 As Button
    
     ' The Modifiers property for button2 is "Protected".
     Protected button2 As Button
    
    ' button3 is not a member, because 
    ' its GenerateMember property is false.
    
    // The Modifiers property for button1 is "private".
    private Button button1;
    
    // The Modifiers property for button2 is "protected".
    protected Button button2;
    
    // button3 is not a member, because 
    // its GenerateMember property is false.
    
ms233630.alert_note(ru-ru,VS.90).gifПримечание.

По умолчанию конструктор Windows Forms назначает модификатор private (Friend в Visual Basic) контейнерным элементам управления, таким как Panel. Если базовый элемент управления UserControl или Form имеет контейнер, он не примет новые дочерние элементы в унаследованных элементах управления и формах. Для решения этой проблемы следует изменить модификатор базового контейнера на protected или public.

См. также

Задачи

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

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

Ссылки

Button

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

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