Я ищу какое-то решение, как получить данные из динамически созданного datagridview в динамически созданной вкладке в tabcontrol. После того, как я сделал gridviews, я заполнил его из файлов Excel. Я не знаю, как вызвать конкретное datagridview в другом методе, если я не создал его постоянно в своем проекте.C# как получить данные из динамически созданного datagridview в динамически сделанных вкладках в tabcontrol
Ниже приведен код моего метода, как я генерирую динамические вкладки и заполняю динамически созданные datagridviews в TabControl. Любая помощь будет действительно оценена :-)
private void FillPages()
{
try
{
for (int i = 0; i <= listView.Items.Count - 1; i++)
{
string path = listView.Items[i].Text.ToString();
Variables.fileNameWithoutExtension = Path.GetFileNameWithoutExtension(path);
Variables.FullPath = listView.Items[i].Text.ToString();
string valueMonth = comboBoxMonth.Text.ToString();
string valueYear = comboBoxYear.Text.ToString();
string excelQuery = "select * from [AAB$]";
try
{
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
+ path + ";Extended Properties=\"Excel 12.0;HDR=YES;\";";
OleDbConnection con = new OleDbConnection(connectionString);
OleDbCommand cmdOLEDB = new OleDbCommand(excelQuery, con);
con.Open();
OleDbDataAdapter da = new OleDbDataAdapter(cmdOLEDB);
DataTable data = new DataTable();
da.Fill(data);
Variables.fileName = Path.GetFileName(path);
TabPage tab = new TabPage();
tab.Text = Variables.fileNameWithoutExtension;
DataGridView grid = new DataGridView();
grid.Dock = DockStyle.Fill;
grid.AllowUserToAddRows = false;
grid.DataSource = data;
grid.AutoResizeColumns();
grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
tab.Controls.Add(grid);
tabControlForDataUploaded.Controls.Add(tab);
labelTabName.Text = tabControlForDataUploaded.TabPages[0].Text.ToString();
con.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
делают DataGridView сетки как глобальные. –
просто объявите DataGridView из метода FillPages. –
@sowjanyaattaluri Нет ли данных DataGridView для получения данных? Если это так, то одна глобальная ссылка на объект не будет делать трюк. Я хотел бы только спросить, где проблема с использованием данных? У вас есть свой собственный datatable, привязывая его к источнику, а затем он привязан к datagridview. Вы хотите, чтобы глобальный доступ к этим данным также находился за пределами этого цикла, или вы просите о базовом способе доступа к данным из базы данных? –