Практическое руководство. Использование свойств Modifiers и GenerateMember
Обновлен: Ноябрь 2007
При размещении компонента в форме Windows Forms два свойства предоставляются средой разработки: GenerateMember и Modifiers. Свойство GenerateMember указывает, когда конструктор Windows Forms создает переменную-элемент для компонента. Свойство Modifiers — это модификатор доступа, назначенный этой переменной-элементу. Если значение свойства GenerateMember равно false, значение свойства Modifiers не действует.
Примечание. |
---|
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих настроек или версии среды. Для изменения параметров выберите Параметры импорта и экспорта в меню Сервис. Дополнительные сведения см. в разделе Параметры Visual Studio. |
Чтобы указать, является ли компонент элементом формы, выполните следующие действия.
В конструкторе Windows Forms откройте форму.
Перетащите три элемента управления Button из панели элементов в форму.
Установите свойства GenerateMember и Modifiers для каждого элемента управления Button в соответствии со следующей таблицей.
Имя кнопки
Значение GenerateMember
Значение модификатора
button1
true
private
button2
true
protected
button3
false
Без изменений.
Выполните сборку решения.
Нажмите кнопку Показать все файлы в Обозревателе решений.
Откройте узел Form1 и в редакторе кодаоткройте Form1.Designer.vb или Form1.Designer.cs. Этот файл содержит код, созданный конструктором Windows Forms.
Найдите объявления для этих трех кнопок. В следующем примере программы показаны различия, указанные свойствами 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.
Примечание. |
---|
По умолчанию конструктор Windows Forms назначает модификатор private (Friend в Visual Basic) контейнерным элементам управления, таким как Panel. Если базовый элемент управления UserControl или Form имеет контейнер, он не примет новые дочерние элементы в унаследованных элементах управления и формах. Для решения этой проблемы следует изменить модификатор базового контейнера на protected или public. |
См. также
Задачи
Пошаговое руководство. Демонстрация визуального наследования
Практическое руководство. Наследование форм Windows Forms