c# - 在表单上多次放置相同的控件(以编程方式)
问题描述
我创建了一个 DataGridView 并根据需要设置它的属性。
问题是我可以在 application 中有四个外观相同的 DataGridView ,这取决于我的应用程序中的某些条件。我想知道我是否可以通过编程方式创建一个 DataGridView 实例并从原始 DataGridView 复制所有属性,以便我有 2、3、4 个相同的 DataGridView?
我知道可以通过设计器实现,但是如何以编程方式复制它?
我听说过扩展方法,但有更简单的方法吗?
编辑:我添加了新方法:
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);
解决方案
推荐阅读
- node.js - 在终端中输入“npm run debug”时出现“语法错误:无效或意外令牌”
- xml - 使用 Powershell 读写 XML 内容
- javascript - javascript mongooose 在更新期间保护 mongodb 中的数据完整性
- java - 如何创建原始数据类型的通用数组的深层副本?
- javascript - 有没有办法增加material-ui中轮廓按钮的边框厚度?
- paypal - PayPal 智能支付按钮 - 请求数量
- flutter - 无法打开文件,路径 = 'assets/responseFile'(操作系统错误:没有这样的文件或目录,errno = 2)
- dynamo-local - AWS DynamoDB SampleData:创建本地表
- python - 收到“UnpicklingError:无效的加载键,'v'。” 尝试在 Python 中运行 truecase 时
- pytorch - NameError:名称“nn”未定义