动态设置控件属性的值

来源:互联网 发布:淘宝客在哪里找产品 编辑:程序博客网 时间:2024/05/23 02:06

以下代码可以实现动态设置控件指定的属性的值。代码如下。

/// <summary>        /// 设置控件的属性的值        /// </summary>        /// <typeparam name="TControl">控件类型</typeparam>        /// <typeparam name="TValue">属性值类型</typeparam>        /// <param name="control">控件</param>        /// <param name="propertyName">属性名</param>        /// <param name="value">属性值</param>        public static void SetBehavior<TControl,TValue>(Control control, string propertyName, TValue value)        {            if (control is TControl)            {                Type t = typeof(TControl);                PropertyInfo propertInfo = t.GetProperty(propertyName);                propertInfo.SetValue(control, value);            }        }


通过表达式树实现通用的控件属性值设置方法

/// <summary>        /// 设置控件的属性的值        /// </summary>        /// <typeparam name="TControl">控件类型</typeparam>        /// <typeparam name="TValue">返回的属性值类型</typeparam>        /// <param name="control">控件</param>        /// <param name="memberLambda">表示控件属性的表达式树</param>        /// <param name="value">属性值</param>        public static void SetProperty<TControl, TValue>(Control control, Expression<Func<TControl,TValue>>memberLambda, TValue value)        {            if (control is TControl)            {                var memberSelectorExpression = memberLambda.Body as MemberExpression;                if (memberSelectorExpression!=null)                {                    var property = memberSelectorExpression.Member as PropertyInfo;                    if (property!=null)                    {                        property.SetValue(control, value);                    }                }            }        }



原创粉丝点击