将组件放置在 Windows 窗体上时,设计环境提供两个属性:GenerateMember 和 Modifiers。 GenerateMember 属性指定 Windows 窗体设计器何时为组件生成成员变量。 Modifiers 属性是指定给该成员变量的访问修饰符。 如果 GenerateMember 属性的值为 false,则 Modifiers 属性没有效果。
提示
显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您现用的设置或版本。 若要更改设置,请在“工具”菜单上选择“导入和导出设置”。 有关更多信息,请参见 使用设置。
指定组件是否是窗体成员
在 Windows 窗体设计器中打开窗体。
打开**“工具箱”**,将三个 Button 控件放置在窗体上。
根据下表为每个 Button 控件设置 GenerateMember 和 Modifiers 属性。
按钮名称
GenerateMember 值
Modifiers 值
button1
true
private
button2
true
protected
button3
false
无更改
生成解决方案。
在**“解决方案资源管理器”中,单击“显示所有文件”**按钮。
打开**“Form1”节点,并在“代码编辑器”中打开“Form1.Designer.vb”或“Form1.Designer.cs”**文件。 此文件包含 Windows 窗体设计器发出的代码。
找到三个按钮的声明。 下面的代码示例显示了由 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 窗体设计器将 private(在 Visual Basic 中为 Friend)修饰符指定给容器控件(如 Panel)。 如果基 UserControl 或 Form 具有容器控件,则将不会接受继承的控件和窗体中的新子级。 此解决方案用于将基容器控件的修饰符更改为 protected 或 public。