通过Parent / TabControl-> TabPage访问嵌套的DataGridview

时间:2013-03-27 10:49:50

标签: c# winforms datagridview nested-controls

我正在创建一个Windows窗体应用程序,我希望从数据库中获取数据,这些数据将同步到我可以在特定表中找到的目标数据库。

为此,我在TabControlForm 1TabPages创建了TabPage,每个目标数据库都是实用的。对于每个foreach (DataRow row in targetDatabases.Rows) { //Checking for target databases that aren't Master if (int.Parse(row["IS_MASTER"].ToString()) == 0) { //Creating a new TabPage for every target found in the Table TabPage newPage = new TabPage(row["CODE"].ToString()); // I'm not sure if this should be newPage.Parent = tabControl; // or tabControl.Controls.Add(newPage) //Creating a new DataGridView for every target found DataGridView newDgv = new DataGridView(); //Also not sure if this should be newDgv.Parent = newPage; //or newPage.Controls.Add(newDgv) //Setting the DataSource currDGV.DataSource = Model.getGridViewData(xmlpath, 0); //Layout settings for the DataGridView . . . } } // Return the TabControl to the View return tabControl; 我创建一个DataGridview来存储数据,我让用户选择他们想要同步的记录。

DataGridView

现在没问题。

现在,用户可以选择要同步的记录和目标。

这就是它的样子:

enter image description here

但是现在,我不知道如何访问每个for (int i = 0; i < targetDatabaseCount; i++) { tabPages[targetDatabaseCount] = (TabPage)inputTabControl.GetControl(targetDatabaseCount); foreach (TabPage tabPage in tabPages) { DataGridView tempDgv = //don't know how to get the gridview from the TabPage } } 中的数据以将用户选择保存到文件或开始同步。

我试过这样的事情:

{{1}}

因为我是学徒,请对我宽容,这是我在这里的第一篇文章:)

1 个答案:

答案 0 :(得分:0)

您可以迭代每个标签页中的控件,如果控件是datagridview,您可以将其转换并使用。

像这样:

foreach (TabPage tbp in tbctrl.TabPages)
        {
            foreach (Control ctrl in tbp.Controls)
            {
                if (ctrl is DataGridView)
                {
                    DataGridView newDgv = (DataGridView)ctrl;
                    string strValue = newDgv.Rows[0].Cells[0].Value.ToString();
                }
            }
        }