Windows窗体设计器,Design> GenerateMember背后的基本原理

Pap*_*ter 5 c# windows-forms-designer visual-studio

在Visual Studio中,在Windows窗体应用程序上工作时,可以在"窗体设计视图"中找到某个选项.我在谈论GenerateMember选项(在Design属性窗口的部分下).

此选项的说明如下:

指示是否将为此组件生成成员变量.

因此,如果我tb1使用Form Dessigner 创建一个文本框到我的表单中f1并将此选项设置为false,则我无法访问代码中的控件(既不存在f1.tb1也不tb1存在).

应该有充分的理由这样做,但我不知道这个原因是什么,这就是我要问的原因:

  • 什么是Design> GenerateMember选项背后的基本原理?
  • 可以实现什么可以将此选项设置为false,而无法使用true实现?
  • 在什么情况下我应该保持将控件设置隐藏GenerateMember为false而不是让它具有默认值(true)?

谢谢.

gmi*_*ley 5

如果GenerateMember设置为false,则不是将大量私有字段限定为Form类实例,而是将它们作为InitializeComponent()方法创建范围- 这意味着您将不再拥有this.btnOkthis.btnCancel访问表单中的任何内容.

我认为这在很大程度上只是个人偏好.通过指定哪些控件直接显示为表单类其余部分的私有字段,可以避免在修改代码时迷失在未使用的字段中.

除此之外,没有真正的功能差异.您仍然可以通过:this.Controlscollection 访问控件.