如果我查看框架中的某些类,使用反射器,我可以看到表单和用户控件是私有的并嵌套在父类中。

例如,我有一个控件,它使用特定于该控件的弹出窗体。 目前,我可以让弹出窗体朋友访问。 如果我想以框架方式实现它,我会将其设为私有并将其嵌入到控件类中。 但是,如果我这样做,我就不能再使用ide来设计表单了,当我尝试编译时会出错。 所以,我有两个问题:

(1)微软是否会在最后一分钟做一些事情来把所有东西都包含在内?

(2)他们的方式是首选方式还是应该坚持我的朋友访问者?

有帮助吗?

解决方案

嵌套表单更好,因为它强制执行正确的封装,并且意味着最终控件将最终放在一个漂亮的整齐包中进行分发。如果这些都不是你的问题,那就继续按照自己的方式行事吧。但是如果你想至少尝试嵌套这个类,你可以这样做:

  1. 使用设计器可以像往常一样在类外部构建嵌套表单。
  2. 将第二个 empty 表单添加为私有嵌套表单,就像在CLR示例中一样,其名称与您在步骤1中构建的表单相同。
  3. 将代码从 *。designer.vb *。designer.cs 迁移到第二个表单的构造函数中。它主要只是一个大的复制/粘贴。
  4. 从步骤1中删除表单。您可能希望通过将其移动到单独的类库项目来保留,以便在需要进行更改时使用。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top