我正在尝试在C#中创建一个包含Delphi TFrame的CustomControl,它可以从VisualStudio工具箱拖到Form上。这一点我工作正常,但是当我尝试调整控件错误时,由于TFrame没有在设计模式下运行(它试图访问框架上数据网格的事件处理程序)。
我在Delphi中创建了一个TFrame对象,它包含各种控件(数据网格,组合框等),以及包含TFrame对象的C#中的CustomControl。
为了解决这个问题,我想我需要设置TFrame对象的Site属性,以便DesignMode为true。我怎么能这样做呢?
我知道如果将LicenseManager.UsageMode设置为DesignTime,我可以通过检查每个方法的开头来解决这个问题,但这似乎是解决问题的一种非常糟糕的方法。因此,如果可能的话,我希望正确设置网站属性。
我正在使用CodeGear RAD Studio 2007和Visual Studio 2008。
提前致谢
答案 0 :(得分:0)
原来这个问题是由Visual Studio中的一个错误造成的,其中DesignMode和Site属性永远不会在构造函数或UserControl中创建的组件上设置。因此,DesignMode属性始终为false。
有几个建议的解决方案都涉及向任何事件处理程序或方法添加测试,其中代码应仅在运行时执行。第一个选项是检查LicenseManager.UsageMode属性,第二个选项是检查正在执行的进程的名称(例如,如果它的“devenv”,那么它的设计时间)。