日期:2014-05-17  浏览次数:20744 次

探索,如何写这个通用方法,求大神。
写一个通用方法。
传入的参数,第一个默认是checkbox,后边的可以是textbox、也可以是combbox、也可以是日期控件。而且除了checkbox的数量固定为一个,其他参数传入的数量都不固定
如果checkbox是选中的呢,textbox、combbox、等等其他控件 全部为可写的。
如果checkbox没有选中的呢,textbox、combbox、等等其他控件 全部为只读的。
问如何实现这个方法?

------解决方案--------------------

public void Method(CheckBox checkbox, params Control[] controls)
        {
            if (checkbox.Checked)
            {
                foreach (var item in controls)
                {
                    var propertyInfo = item.GetType().GetProperty("ReadOnly");
                    if (propertyInfo == null)
                        continue;
                    propertyInfo.SetValue(item, false, null);
                }
            }
            else
            {
                foreach (var item in controls)
                {
                    var propertyInfo = item.GetType().GetProperty("ReadOnly");
                    if (propertyInfo == null)
                        continue;
                    propertyInfo.SetValue(item, true, null);
                }
            }
        }


 public partial class Form1 : Form
    {
        public Form1()
        {