나는 tabcontrol에서 동적으로 만든 tabpage에서 동적으로 만든 datagridview에서 데이터를 가져 오는 방법을 찾고 있습니다. gridviews를 만든 후 Excel 파일에서 채 웁니다. 내 프로젝트에서 영구적으로 만들지 않았다면 다른 방법으로 특정 datagridview를 호출하는 방법을 모르겠습니다.C#에서 동적으로 생성 된 DataGridview tabcontrol에서 동적으로 만든 tabpages에서 데이터를 가져 오는 방법
다음은 동적으로 탭 페이지를 생성하고 TabControl에서 동적으로 만든 DataGridview를 채우는 방법의 코드입니다. 모든 도움은 정말 감사하겠습니다 :-)
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에 격자입니다. –
그냥 FillPages 메서드 밖으로 DataGridView 선언하십시오. –
@sowjanyaattaluri 데이터를 가져올 DataGridView가 많지 않습니까? 그렇다면 하나의 전역 객체 참조가 트릭을 수행하지 않습니다. 데이터를 사용할 때의 문제점은 어디까지입니까? 자신의 데이터 테이블을 소스에 바인딩 한 다음 datagridview에 바인딩합니다. 해당 루프 외부에서도 해당 데이터 테이블에 대한 전역 액세스를 원하십니까? 아니면 데이터 테이블에서 데이터를 액세스하는 기본 방법을 묻는 중입니까? –