当验证对话框中的用户输入失败时,我调用了一个实用程序例程。它将焦点设置到有问题的控件上,发出哔哔声并向用户显示适当的消息。只要不隐藏有问题的控件,这就会很好地工作。现在我必须适应这种情况,即相关控件是某种可折叠组框的子项(甚至可能是嵌套的),并且我必须确保在调用 SetFocus 之前展开“祖先”框。
现在我有几种可能:
- 将有关可折叠组件的知识构建到错误报告例程中。我想避免这种情况,因为例程应该保持通用。
- 传递一个可以在 SetFocus 之前(或代替)调用的回调。这很容易出错,因为必须记住在所有相关位置传递回调。
- 我最喜欢的解决方案可能是一个事件(或可覆盖的方法)(可能在 TWinControl 中),它告诉容器控件“请确保您和您的子控件可见”,但我不知道这样的事情。
任何想法我可以如何处理这种情况?