我不知道怎么说,我有3个datagridview控件(名为datagridview1
,datagridview2
& datagridview3
)。我的问题是我可以连接那些控件的名称吗?
我的意思是有一种方式我可以这样称呼它:datagridview(n) or datagridview + n
我正在使用winforms。
提前致谢!
答案 0 :(得分:0)
我认为您想要的是使用动态名称找到控件?
或许这样的事情:
Control match = ParentControl.Controls["datagridview" + n];
因此,如果您的所有数据网格都位于名为“MyPanel”的单个面板中,那么您可以这样做:
DataGridView match = MyPanel.Controls["datagridview" + n] as DataGridView;
但是,如果您的数据网格并非都属于同一个父控件,那么您可以使用Controls.Find方法找到它们:
DataGridView match = this.Controls.Find("datagridview" + n, true)[0] as DataGridView;
注意:Controls.Find方法返回一个数组,因此您需要选择第一个元素(假设您的控件名称是唯一的),在尝试访问第一个元素之前,还可能需要检查数组是否具有任何值太
如果要将其包装在函数中,可以执行以下操作:
public DataGridView GetDataGridViewForTabNumber(int n){
Control[] matches = this.Controls.Find("datagridview" + n, true);
if(matches.length == 0)
return null;
return matches[0] as DataGridView;
}
并称之为:
DataGridView dgv = GetDataGridViewForTabNumber(1);//gets datagridview1
注意:如果您在运行时动态创建DataGridView控件,这是一个非常有效的方法。然而,如果你在设计师中创建它们,那么就像Tim说的那样,你应该给它们一个更有意义的名字并直接引用它们。
答案 1 :(得分:0)
试试这个
DataGridView dg =(DataGridView)this.Controls.Find(“datagridview”+ n.ToString(),true);