【问题标题】:Is there a way to make a property runtime-only in .NET?有没有办法在 .NET 中创建仅运行时的属性?
【发布时间】:2012-04-20 02:42:36
【问题描述】:

我有一个 UserControl,我想创建一个只能在运行时访问的属性,而不是在设计时访问。这可能与属性有关,还是我应该创建一个函数?

【问题讨论】:

  • 你会用功能展示你的解决方案吗?我无法理解您的问题。
  • 我只是想让一个属性在 WinForms 设计器中不可见,因为它只有在程序执行时才有意义。
  • 您究竟为什么要这样做。你为什么要关心它是否在 WinForms 设计器中可见。

标签: .net function properties user-controls runtime


【解决方案1】:

它只需要属性。您可能想要使用 [DesignTimeSerializationVisibility],这样该属性的值就不会保留在 InitializeComponent() 方法中。和 [Browsable] 所以它在 VS 属性窗口中不可见。像这样:

    [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    [Browsable(false)]
    public int DontPersistAndDontEdit {
        get;
        set;
    }

【讨论】:

    【解决方案2】:

    尝试应用这些属性的组合:

    [EditorBrowsable(EditorBrowsableState.Never)]
    [Browsable(false)]
    

    【讨论】:

    • +1 建议使用 .NET 为设计人员提供的支持。 :)
    • 这不是很有帮助。对 IntelliSense 隐藏该属性是没有意义的。而且 [DesignTimeVisible] 只能应用于类,不能应用于属性。
    • @HansPassant:感谢您指出这一点。我从答案中删除了 DesignTimeOnly 属性。是否应该对智能感知隐藏该属性取决于 OP,但这就是为什么我说要应用上面列出的属性的组合。
    猜你喜欢
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    相关资源
    最近更新 更多