在选项卡页上选择DataGridView

问题描述 投票:0回答:1

我有一个功能,可以将选项卡页添加到选项卡控件,然后向其中添加 DataGridView。

    public void dgv_AddGrid(string dgvName)
    {
        int tabCount = tabControl1.TabCount;
        listBox1.Items.Add(tabCount.ToString());
        Application.DoEvents();
        tabControl1.TabPages.Insert(0, dgvName);
        tabControl1.SelectedTab = tabControl1.TabPages[0];
        tabControl1.SelectedTab.Name = dgvName;
        DataGridView grid = new DataGridView();
        tabControl1.TabPages[0].Controls.Add(grid);
        grid.ColumnCount = 3;
        grid.Width = tabControl1.Width;
        grid.Anchor = (AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right);
        dgv = grid;     // This sets a Global variable to the newly created DataGridView
    }

我现在需要一种方法,在创建几个 Tab.DataGridView 对后使用 dgvName 访问特定对。

这是我尝试过的

    public void dgv_SelectTab_Grid_By_Name(string tabName)
    {
        if (tabControl1.TabPages[tabName] == null)
        {
            MessageBox.Show("The requested Tab/Data Grid Combination does not exist.\r\nSelected Tab/Data Grid Combo is UNCHANGED!",
                            "Missing Tab", MessageBoxButtons.OK, MessageBoxIcon.Error);
            return;
        }
        else
        {
            tabControl1.SelectedTab = tabControl1.TabPages[tabName];
            dgv = tabControl1.SelectedTab.grid;
        }
    }

我似乎找不到如何访问所选选项卡页上的 DataGridView 网格。

有一个全局容器:DataGridView dgv;

我使用 .NET Framework 4.6.2 来保持与 Win 10 的兼容性,而无需安装其他 .NET

c# .net datagridview
1个回答
0
投票

在全球范围内使用字典

Dictionary<string, DataGridView> dataGrids = new Dictionary<string, DataGridView>();

而不是:

DataGridView dgv;

在 dgv_AddGrid 中

二手

dataGrids.Add(dgvName, grid);

而不是

dgv = grid;

并选择名称选项卡/网格对

dgv = dataGrids[tabName];

注意:我的 DataGridView 代码已设置,因此所有相关函数都作用于 dgv。

© www.soinside.com 2019 - 2024. All rights reserved.