【问题标题】:How to avoid control right to left property be affected by container如何避免控制从右到左属性受容器影响
【发布时间】:2015-01-02 22:50:32
【问题描述】:

如何强制 C# 或 Vb.net 中的控件从右向左和字体属性(以及其他受影响的属性)不受其容器的影响?

例如,当我将文本框放入字体为“Font A”的面板中时,文本框字体属性字体变为“Font A”。我怎样才能避免这种情况?

【问题讨论】:

  • 在文本框上设置特定字体。
  • 从右到左的属性呢?如果我正在设计一个继承的控件怎么办?
  • 也明确设置从右到左的属性。如果没有明确设置,控件将继承一些属性值(通过环境属性)。就是那样子。如果您正在设计自己的控件,则可以使用设计属性上的 [DefaultValue] 属性来覆盖默认值。我想。
  • 如果可以的话,您确实应该使用默认系统设置的字体等,让用户选择他们想要的体验方式。

标签: c# vb.net properties controls


【解决方案1】:

要覆盖属性(因此它的值不是该控件类型的默认值,也不是以某种方式从父级获取),您可以执行以下操作

[System.ComponentModel.DesignerCategory("Code")]
public class MyLabel : Label
{
    [DefaultValue(true)]
    public new bool AutoSize
    {
        get { return base.AutoSize; }
        set { base.AutoSize = value; }
    }

    public MyLabel()
    {
        AutoSize = true;
    }
}

【讨论】:

  • MyLabel 是做什么的?什么时候调用?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多