c# - 创建一个从父属性继承的环境属性

标签 c# .net vb.net winforms windows-forms-designer

似乎无法弄清楚如何做到这一点。我有一个继承的控件:MyControl,它有一个名为 MyOtherFont 的属性。如何让 MyOtherFont 继承父控件的 Font 属性的环境值?

例如,如果我将此控件拖到字体为 Segoe UI 的窗体上,则设计器应从该窗体继承该值,而不是在属性窗口中将其显示为粗体。

谢谢

最佳答案

想通了。这是一个 C# 示例,它完全按照我的示例所描述的进行操作。希望这对某人有帮助。

public class MyControl : Control
{

    private Font myOtherFont;
    public Font MyOtherFont
    {
        get
        {
            if (this.myOtherFont == null)
            {
                if (base.Parent != null)
                    return base.Parent.Font;
            }

            return this.myOtherFont;
        }
        set
        {
            this.myOtherFont = value;
        }
    }

    private bool ShouldSerializeMyOtherFont()
    {
        if (base.Parent != null)
            if (base.Parent.Font.Equals(this.MyOtherFont))
                return false;

        if (this.MyOtherFont == null)
            return false;

        return true;
    }

    private void ResetMyOtherFont()
    {
        if (base.Parent != null)
            this.MyOtherFont = base.Parent.Font;
        else
            this.MyOtherFont = Control.DefaultFont;
    }
}

关于c# - 创建一个从父属性继承的环境属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16428389/

相关文章:

c# - Accord.NET:如何训练 Boost 分类器

c# - vshost 文件的用途是什么?

C# 9/10 顶级语句和 ExcludeFromCodeCoverage-Attribute?

c# - 使用 IP 地址打印到网络打印机

vb.net - 如何检查给定的字符串是否是真实的单词?

vb.net - Mono 找不到似乎存在的 dll

c# - 懒惰评估不那么懒惰?

c# - 属性网格中属性 "Name"的特殊含义

c# - 生产者消费者使用公共(public) BlockingCollection 分离类

vb.net - 在VB中将列表转换为字典