将TabGridView添加到tabControl中的每个TabPage

时间:2016-08-10 06:29:42

标签: c# .net

我在向每个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名称。 有人能告诉我如何实现这一目标?

1 个答案:

答案 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;
    }
}