c# - 阻止 Windows 窗体设计器设置属性的属性是什么

标签 c# winforms windows-forms-designer

我一直在用户控件上使用 [System.ComponentModel.ReadOnly] 以防止设计器设置属性,但我已经阅读了一些内容表明 [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] 应用于此目的。哪个是对的?如果它不是[System.ComponentModel.ReadOnly],那么什么时候应该使用这个属性?

最佳答案

嗯,它确实做到了这一点,但并不是它的意图。 [ReadOnly(true)] 阻止用户修改“属性”窗口中的属性。它仍然显示,但呈灰色。这实际上有用的可能性相当小,我想不出一个好的例子。一个可能的极端情况是自定义 TypeDescriptor,它根据其他属性值动态更改只读状态。但这是火箭科学。

您通常使用 [Browsable(false)] 来阻止该属性显示。 DesignerSerializationVisibility.Hidden 可阻止代码序列化程序保留 InitializeComponent() 方法中的值,如果用户无法修改该值,则该值不太可能有用。尽管 [DefaultValue] 通常已经确保了这一点。 YMMV。

关于c# - 阻止 Windows 窗体设计器设置属性的属性是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45612853/

相关文章:

c# - 我在将实时 ID 与我的 MVC 网站集成时遇到了困难

c# - 用自定义图像替换 "red-cross"的DataGridViewImageColumn中的 "new-row"

vb.net - 默认继承按钮文本

winforms - 如何在我自己的设计工具中获得 Localizable 属性和支持?

c# - 正则表达式在字符或行尾终止

c# - 我必须在 Windows 服务中实现 Stop 方法吗?

c# - 如何在 C# 中找到已安装应用程序的升级代码?

c# - 在 C# 中测试 'Ctrl' keydown

c# - 如何在按钮控件上使用动画 GIF?

c# - 在构造函数中更改扩展的 RichTextBox 文本不起作用