0

我尝试使用以下方法从事件 ItemChanged 中发送窗口的打开事件:SUPER :: EVENT OPEN ()除了包含“脚本祖先”的打开事件之外,我还需要运行;本身需要从 DataWindow 的事件 ItemChanged 重新启动窗口。

我希望你的帮助。

提前致谢。

问候,

4

1 回答 1

1

从你的问题中跳出几件事。

SUPER::EVENT OPEN()如果从 ItemChanged 而不是Window调用,将尝试调用DataWindow的 Open 事件。

我不是 100% 确定这一点,但我很确定我在尝试从一个完全不同的脚本调用一个脚本的祖先时遇到了问题。我无法指出文档;我只能把它归结为有经验的怀疑。

目前还不完全清楚你在追求什么,但是如果你想调用窗口的 Open (我将在下面提出其他建议),并且窗口的 Open 脚本要么扩展了祖先脚本,要么显式调用了祖先脚本(如上面),显式调用祖先脚本是不必要的,并且让我觉得可能不受欢迎。只需调用您正在编写的窗口的 Open 脚本。

这将完全取决于您的代码,但在我必须维护的数十个系统中,我绝不会假设运行窗口的 Open 事件会“重新启动”窗口。我工作过的大多数系统,只会产生以前和新状态的意外混合。此外,即使我从头开始编写代码以便以这种方式完美运行,我会假设下一个维护我代码的人(在我中了彩票并退休到南太平洋的一个小岛之后)会在基于他工作的其他系统,这对他来说非常有意义,但会搞砸我的假设。如果我需要“重新启动”窗口,我会:

  • 关闭窗口并再次发布窗口的 Open() (函数,而不是事件)
  • 创建一个 ue_ResetWindow 事件,希望编码以便 Open 也可以使用它,这很明显,添加到窗口的任何内容也需要在此脚本中维护

(在这两者中,后者将是更好的用户体验和编码,恕我直言。)

祝你好运,

特里。

于 2013-07-08T19:30:31.413 回答