将相同的控件多次(以编程方式)放在表单上

时间:2018-08-30 18:01:31

标签: c# datagridview controls

我创建了一个DataGridView并根据需要设置其属性。
问题是我可以在应用程序中使用四个外观相同的DataGridView,这取决于我的应用程序中的某些条件。我想知道是否可以以编程方式创建DataGridView的一个实例并复制原始DataGridView的所有属性,以便拥有2,3,4个相同的DataGridViews吗?

我知道可以通过设计器实现,但是如何以编程方式复制它呢?


我听说过扩展方法,但是有没有更简单的方法?


编辑: 我添加了新方法:

private void copyControl(Control sourceControl, Control targetControl)
    {
        // make sure these are the same
        if (sourceControl.GetType() != targetControl.GetType())
        {
            throw new Exception("Incorrect control types");
        }

        foreach (PropertyInfo sourceProperty in sourceControl.GetType().GetProperties())
        {
            object newValue = sourceProperty.GetValue(sourceControl, null);

            MethodInfo mi = sourceProperty.GetSetMethod(true);
            if (mi != null)
            {
                sourceProperty.SetValue(targetControl, newValue, null);
            }
        }
    }



   DataGridView dgw = new DataGridView();
   copyControl(PartsDgv, dgw);


我得到这个例外
enter image description here

0 个答案:

没有答案