我有一个功能,可以将选项卡页添加到选项卡控件,然后向其中添加 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
在全球范围内使用字典
Dictionary<string, DataGridView> dataGrids = new Dictionary<string, DataGridView>();
而不是:
DataGridView dgv;
在 dgv_AddGrid 中
二手
dataGrids.Add(dgvName, grid);
而不是
dgv = grid;
并选择名称选项卡/网格对
dgv = dataGrids[tabName];
注意:我的 DataGridView 代码已设置,因此所有相关函数都作用于 dgv。