C# 将DataGridView添加到tabControl中的每个TabPage

C# 将DataGridView添加到tabControl中的每个TabPage,c#,.net,C#,.net,在将dataGridView添加到每个选项卡页时,我遇到了一些问题 我正在从列表中添加选项卡页 e、 g 其中p是选项卡页名称。 有人能告诉我如何才能做到这一点吗?只需将DataGridView添加到您创建的选项卡页面中即可。为此,最好使用For循环而不是foreach List<string> lista = new List<string>(); lista.Add("test1"); lista.Add("test2"); lista

在将dataGridView添加到每个选项卡页时,我遇到了一些问题

我正在从列表中添加选项卡页 e、 g

其中p是选项卡页名称。
有人能告诉我如何才能做到这一点吗?

只需将DataGridView添加到您创建的选项卡页面中即可。为此,最好使用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});
    }
或者作为第一个选项卡页(索引==0)的示例:


只需将DataGridView添加到您创建的选项卡页面中。为此,最好使用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});
    }
或者作为第一个选项卡页(索引==0)的示例:


它可以工作,但还有另一个问题,如何使用dataGridView,例如:dataGridView.test1.dataSource=dataTable。我如何才能做到这一点?问题是您无法按名称访问DataGridView,就像您在designtime中使用的那样。当您在运行时添加DataGridView时,编译器不知道它是如何命名的。您必须在TabPage的控件集合中按名称手动搜索它。请参见编辑后的应答。TabPages[0]中的.Where出现错误。Controls.Where告诉我集合不包含“Where”的定义是。我刚刚注意到这在ControlCollection中是不可能的。我将在一分钟内更新答案。它可以工作,但还有一个问题,我如何使用dataGridView,例如:dataGridView.test1.dataSource=dataTable。我如何才能做到这一点?问题是您无法按名称访问DataGridView,就像您在designtime中使用的那样。当您在运行时添加DataGridView时,编译器不知道它是如何命名的。您必须在TabPage的控件集合中按名称手动搜索它。请参见编辑后的应答。TabPages[0]中的.Where出现错误。Controls.Where告诉我集合不包含“Where”的定义是。我刚刚注意到这在ControlCollection中是不可能的。我马上更新答案。
    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});
    }
tabControl_Roz.TabPages[i].Controls.Add(new DataGridView(){
            Name="dataGridView_" + lista[i],
            Dock=DockStyle.Fill,
            DataSource = xxx});
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;
    }
}