如何调用名称存储在new string中的现有表单项
本文关键字:string new 表单 存储 何调用 调用 | 更新日期: 2023-09-27 18:15:10
我有多个数据网格,我想将数据从一个移动到另一个。问题是:
我把它们的名字"made"成字符串变量:
string gridfrom = "datagrid" + cplist1.SelectedItem.ToString();
string gridto = "datagrid" + cplist2.SelectedItem.ToString();
在这种情况下,我知道gridfrom = datagridMAR和gridto = datagridAPR但是gridfrom和gridto会根据列表框中选择的项目而变化。
我如何调用这些对象(已经存在于形式)来改变其属性?例如:
gridto.DataSource = gridfrom;
Thanks in advance
让我告诉你一种优雅的方法来处理这种情况,而不需要动态类型加载等等
创建自定义类型,例如
class GridName {
public DataGridView Grid {get; private set;}
public string Name {get; private set;}
public GridName(DatagridView grid, string name) {
Grid = grid;
Name = name;
}
public string override ToString() {
return Name;
}
}
现在,不再向cplist1和cplist2中添加string
,而是向其中添加GridName
对象。它将正确显示名称,当你想要与网格相关联时,你可以访问.Grid
属性
还有很多其他的方法。例如,您可以使用ValueMember
和DisplayMember
属性。
我绝对不会尝试将网格名称转换为DatagridView对象。