如何调用名称存储在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

如何调用名称存储在new string中的现有表单项

让我告诉你一种优雅的方法来处理这种情况,而不需要动态类型加载等等

创建自定义类型,例如

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属性

还有很多其他的方法。例如,您可以使用ValueMemberDisplayMember属性。

我绝对不会尝试将网格名称转换为DatagridView对象。