0

我正在尝试在 C# 中创建一个包含 Delphi TFrame 的 CustomControl,它可以从 VisualStudio 工具箱拖到窗体上。我已经正常工作了这么多,但是当我尝试调整控制错误时,由于 TFrame 未在设计模式下运行(它尝试访问框架上数据网格的事件处理程序)而发生错误。

我在 Delphi 中创建了一个包含各种控件(数据网格、组合框等)的 TFrame 对象,并在 C# 中创建了一个包含 TFrame 对象的 CustomControl。

为了解决这个问题,我想我需要设置 TFrame 对象的 Site 属性,以便 DesignMode 为真。我该怎么做呢?

我知道我可以通过在每个方法的开头检查 LicenseManager.UsageMode 是否设置为 DesignTime 来解决这个问题,但这似乎是解决问题的一种非常糟糕的方法。因此,如果可能的话,我想正确设置站点属性。

我正在使用 CodeGear RAD Studio 2007 和 Visual Studio 2008。

提前致谢

4

1 回答 1

0

原来这个问题是由 Visual Studio 中的一个错误引起的,其中 DesignMode 和 Site 属性永远不会在构造函数或 UserControl 中创建的组件上设置。因此,DesignMode 属性始终为 false。

有几种建议的解决方案都涉及向任何事件处理程序或方法添加测试,其中代码只应在运行时执行。第一个选项是检查 LicenseManager.UsageMode 属性,第二个选项是检查执行进程的名称(例如,如果它的“devenv”那么它的设计时间)。

于 2011-04-08T13:08:40.997 回答