从父用户控件获取属性值

本文关键字:属性 获取 控件 用户 | 更新日期: 2023-09-27 17:54:43

我想创建一个方法来从父用户控件获取值,但PropertyInfo无法从父控件获取值并抛出异常。我认为发生这种情况是因为它不是对象的实际类型。

我正在使用。net 2,所以我不能使用动态关键字。

有什么办法可以做到吗?

    public object GetFromPar(Control parent, string propertyName, Type parentType)
    {
        while (parent != null)
        {
            if (parent.GetType().IsSubclassOf(parentType))
            {
                PropertyInfo info = parent.GetType().GetProperty(propertyName);
                return info.GetValue(parent, null);
            }
            else
            {
                parent = parent.Parent;
            }
        }
        return null;
    }

我是这样调用这个函数的

this.GetFromPar(this.Parent, "Name", typeof(InfoControl));

InfoControl是LoginPanelControl (this)的父级用户控件。

提前感谢。

从父用户控件获取属性值

PropertyInfo info = (typeof(parent.GetType())).GetProperty(propertyName);

如果您知道父类的类型,您可以将其替换为parent. gettype()。