我查看了DesignOnly
属性,但这似乎没有达到我想要的效果*。
基本上,我正在寻找某种方式来指示用户控件的某些属性(比如Text
)可以在设计时修改 - 即,从VS中的Windows窗体设计器(或者可能是从任何可用于修改Windows窗体GUI的GUI设计器 - 但在运行时不。应用程序运行后,该属性应该有效readonly
。
这可能吗?
* 当我将DesignOnly
属性添加到属性时,我从设计模式为该属性选择的值似乎不会粘;该属性最终是我在代码中默认设置的任何内容。
答案 0 :(得分:1)
你可以在你的应用程序中放置一个公共静态变量,你可以在main() - 方法中设置为true。 然后,您可以测试是否设置了变量。如果是这样,那么程序已经正常启动,否则我们显然是在设计师中运行。
答案 1 :(得分:0)
可能需要注意的是,设计时支持 是 运行时支持。您的对象正在IDE中在后台旋转。 Designer支持只是一堆IDE元数据,允许Visual Studio(或其他一些设计师)构建对象的图形表示。
运行时和设计时之间没有“真正的”差异。如果你想看看我在说什么,试着在你的一个属性中抛出NotImplementedException
并尝试在设计器中设置它。
答案 2 :(得分:0)
你不能这样做 - VS表单设计器生成的代码在运行时就像任何其他代码一样运行;所以你无法区分VS表单代码和用户代码。看一下InitializeComponent
方法 - 在创建表单时,它就像任何其他代码一样运行。