Joh*_*ohn 5 vb6 dynamic event-handling look-and-feel
我有一个VB6应用程序,我希望在其应用程序范围内的控件之间具有一致的行为.例如,其中一种行为是在获得焦点时突出显示文本框,在失去焦点时删除突出显示.我希望这种情况发生在每一种形式上.
我正在尝试做的是有一个子程序,当它们加载时可以被所有表单调用,这将使这种行为发生.这样,我不必为每个单独的文本框手动编码以使其突出显示.
我试过让VB6在运行时将一个事件处理程序附加到一个控件,但它只是咆哮着我.我来自.Net背景,所以也许我接近VB6的错误.但是,如何在不必为每个控件手动编码的情况下获得所需的行为?
您还可以使用“子类”您的 TextBox 控件WithEvents
。这里的优点是您可以在一个地方编写突出显示和取消突出显示的代码,而无需遍历和替换所有现有控件(正如斯科特建议的那样)。
缺点是您必须向所有表单的 Form_Load 事件添加代码才能“注册”该表单上的控件。然而,如果您想将该技术应用于每个控件,那么即使这样也应该不会太糟糕。在这种情况下,您只需要编写一个函数来循环遍历.Controls
表单集合并注册每个控件。然后只需在每个表单的 Form_Load 事件中调用此函数即可。