我在向每个TabPage添加dataGridView时遇到了一些问题。
我正在从列表中添加TabPages e.g
List<string> lista = new List<string>();
lista.Add("test1");
lista.Add("test2");
lista.Add("test3");
foreach (var p in lista)
{
tabControl_Roz.TabPages.Add(p);
}
现在我想为每个人添加DataGridView。应将DataGridView命名为:
dataGridView_p
其中p是tabPage名称。 有人能告诉我如何实现这一目标?
答案 0 :(得分:2)
只需将DataGridView添加到您创建的TabPage即可。为此,您最好使用for循环而不是foreach ...
List<string> lista = new List<string>();
lista.Add("test1");
lista.Add("test2");
lista.Add("test3");
for(int i = 0; i < lista.Count; i++)
{
tabControl_Roz.TabPages.Add(lista[i]);
tabControl_Roz.TabPages[i].Controls.Add(new DataGridView(){
Name="dataGridView_" + lista[i],
Dock=DockStyle.Fill});
}
要填充DataSource,您可以在创建datagridview时添加它:
tabControl_Roz.TabPages[i].Controls.Add(new DataGridView(){
Name="dataGridView_" + lista[i],
Dock=DockStyle.Fill,
DataSource = xxx});
或者作为第一个TabPage(index == 0)的示例:
int dataGridViewIndex = tabControl_Roz.TabPages[0].Controls.IndexOfKey("dataGridView_" + "test1");
if(dataGridViewIndex >= 0)
{
DataGridView myTabGridView = tabControl_Roz.TabPages[0].Controls[dataGridViewIndex] as DataGridView;
if(myTabGridView != null)
{
myTabGridView.DataSource = xxx;
}
}