Windows Forms Designer,设计背后的基本原理 > GenerateMember
Windows Forms Designer, Rationale behind Design > GenerateMember
在 Visual Studio 中,在处理 Windows 表单应用程序时,可以在表单设计视图中找到某个选项。我说的是 GenerateMember
选项(在属性 Window 的 Design
部分下)。
这个选项的说明如下:
Indicates if a member variable will be generated for this component.
因此,如果我使用表单设计器在我的表单中创建文本框 tb1
f1
我将此选项设置为 false
,然后我无法访问代码中的控件(f1.tb1
和 tb1
存在)。
这样做应该有一个很好的理由,但我不知道这个理由是什么,所以我才问:
Design
> GenerateMember
选项背后的基本原理是什么?
- 将此选项设置为 false 可以实现哪些使用 true 无法实现的功能?
- 在什么情况下我应该隐藏控制设置
GenerateMember
为false而不是让它具有默认值(true)?
谢谢。
当 GenerateMember
设置为 false
时,不是将许多私有字段限定为 Form class 实例,而是将它们创建为限定为 InitializeComponent()
方法 - 这意味着您将无法再让 this.btnOk
或 this.btnCancel
访问您表单中的任何内容。
我认为这在很大程度上只是个人喜好。通过指定您希望哪些控件作为私有字段直接显示给表单的其余部分 class,您可以避免在修改代码时迷失在未使用字段的海洋中。
除此之外,没有真正的功能差异。您仍然可以通过以下方式访问控件:this.Controls
集合。
在 Visual Studio 中,在处理 Windows 表单应用程序时,可以在表单设计视图中找到某个选项。我说的是 GenerateMember
选项(在属性 Window 的 Design
部分下)。
这个选项的说明如下:
Indicates if a member variable will be generated for this component.
因此,如果我使用表单设计器在我的表单中创建文本框 tb1
f1
我将此选项设置为 false
,然后我无法访问代码中的控件(f1.tb1
和 tb1
存在)。
这样做应该有一个很好的理由,但我不知道这个理由是什么,所以我才问:
Design
>GenerateMember
选项背后的基本原理是什么?- 将此选项设置为 false 可以实现哪些使用 true 无法实现的功能?
- 在什么情况下我应该隐藏控制设置
GenerateMember
为false而不是让它具有默认值(true)?
谢谢。
当 GenerateMember
设置为 false
时,不是将许多私有字段限定为 Form class 实例,而是将它们创建为限定为 InitializeComponent()
方法 - 这意味着您将无法再让 this.btnOk
或 this.btnCancel
访问您表单中的任何内容。
我认为这在很大程度上只是个人喜好。通过指定您希望哪些控件作为私有字段直接显示给表单的其余部分 class,您可以避免在修改代码时迷失在未使用字段的海洋中。
除此之外,没有真正的功能差异。您仍然可以通过以下方式访问控件:this.Controls
集合。