Этот вопрос связан с вопросом, который я задавал ранее:
Добавление кнопок на вкладку TabControl в C #
Вкратце: я программно добавил элементы управления на вкладки в форме c #.
Теперь я хотел бы получить доступ к элементам управления вкладки (в данном случае DataGridView) и установить некоторые значения.
this.dataGridView1.Rows[r].Cells[1].Value = "General";
Выше я описал выше, но я не могу использовать это сейчас из-за области действия, поэтому мне нужно получить доступ к DataGridView через родительский:
// THIS IS NON WORKING CODE NO COMMENTS ABOUT THE SYNTAX PLEASE
languageTabs.TabPages[0].Controls["grid"].Row[int].Cells[int].Value = "General";
// TabControl -> First Tab -> DataGridView -> the column -> row -> set value
Есть ли способ сделать ту же функциональность первого фрагмента кода, но с использованием родителей, как во втором фрагменте?
EDIT:
Вот еще код, если он поможет:
while ((line = stringReader.ReadLine()) != null)
{
//if the line isn't a comment (comments start with an '/')
if (line[0] != '/')
{
// split the string at each tab
string[] split = line.Split(new char[] { '\t' });
// is this line the "blah"?
if (split[0] == "blah")
{
// we now need to set up the tables to be used
for (int i = 1; i < split.Length; i++)
{
// add a tab for each language
string tabTitle = split[i];
newTab = new TabPage(tabTitle);
newTab.Name = tabTitle;
languageTabs.TabPages.Add(newTab);
// add a DataGridView to each tab
grid = new DataGridView();
grid.SetBounds(14, 68, 964, 420);
grid.Name = tabTitle + "Grid";
// set the columns in the DataGridView
stringIdColumn = new DataGridViewTextBoxColumn();
stringIdColumn.HeaderText = "String ID";
stringIdColumn.Width = 75;
stringIdColumn.Name = tabTitle + "StringIDColumn";
grid.Columns.Insert(0, stringIdColumn);
...
...
// add the DataGridView and button to each tab
languageTabs.TabPages[split[i]].Controls.Add(grid);
}
}
else
{
// this isn't the identifier it must be the start of the languages
// load the strings to the tables
// THIS IS WHERE I WANT MY CODE
}