【问题标题】:Form control encapsulation表单控件封装
【发布时间】:2013-07-19 10:04:08
【问题描述】:

有没有办法(在 VB6 中)将控件封装在表单中,以便表单的使用者无法修改该表单上控件的属性?

例如,如果我有一个名为 Form1 的表单和一个名为 Command1 的按钮,我如何防止(Form1 的)消费者这样做:

Form1.Command1.Enable = True

我宁愿公开像EnableCommand()这样的方法,让该方法决定它是否是启用命令的有效操作。

大多数其他语言的窗体上的控件默认是私有的,如何在VB6中制作控件Private

【问题讨论】:

  • +1 因为我不明白为什么这个问题被否决了。

标签: vb6 encapsulation


【解决方案1】:

不,没有简单的方法。在 VB.Net 中,您可以在表单设计器中设置控件的访问修饰符,但在 VB6 中您不能这样做。

在大型应用程序中,您可以将逻辑细分为单独的组件(通常是 DLL)。然后其他组件将根本无法访问表单,包括它的控件。

【讨论】:

  • 另一种方法是将按钮放在用户控件上并定义您自己的一组属性。
  • 更有理由讨厌这种该死的语言。不过感谢您的回复。
  • @LukeWage 但用户自己的控件并未封装在表单中,因此消费者可以使用控件移动/隐藏/[做任何他们喜欢的事情]...
  • @FrancoisNel:没错。我假设这只是启用/禁用按钮控件本身的问题。如果您还想封装用户控件,请按照 MarkJ 的建议,将整个表单放入单独的 dll 中。
猜你喜欢
  • 1970-01-01
  • 2011-11-13
  • 2014-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-31
  • 2014-04-20
  • 1970-01-01
相关资源
最近更新 更多