Исходя из активной вкладки TabControl получить имена вкладок и текстовых полей - C#

Узнай цену своей работы

Формулировка задачи:

Задача.

На форме имеется

TabContro

l и

Button

. По нажатии кнопки для TabControl создается вкладка с почти известным названием (присутствует счетчик, который не позволяет именам совпадать т.е. вкладки имеют названия "Tab1", "Tab2" и т.д.) и к этой вкладке прикрепляется точно также созданное текстовое поле со свойством

Multiline

. Кнопка может нажиматься большое количество раз.

Необходимо:

Исходя из активной вкладки получить имена вкладки, и текстового поля и например вставить в данное текстовое поле какой либо текст. Самое сложное для меня получилось установить текст, не имея ссылки на элемент в исходном коде ( ну т.к. элемент у нас создается только по нажатию кнопки)
 private ScintillaNet.Scintilla FindSciTeByName(string name)
        {
            foreach (Control c in this.Controls) //assuming this is a Form
            {
                if (c.Name == name)
                    return c as ScintillaNet.Scintilla; //found
            }
            return null; //not found
        }
Функцию для поиску по имени нашел, но самое интересное, что имен созданных динамически в окне отладки - нет. Собственно ничего не находит Что делать?
Скучные Вы все =) После хорошего сна сам все решил. Как оказалось поиск внутри вкладок нужно проводить отдельно, т.к. сама форма не отдаст названия контролов, которые находятся внутри вкладок.

Решение задачи: «Исходя из активной вкладки TabControl получить имена вкладок и текстовых полей»

textual
Листинг программы
static public Control FindControlsInTab(TabPage Tab, string ControlName)
    {
        foreach (Control c in Tab.Controls)
        {
                if(c.Name == ControlName) return c;
        }
        return null;
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5
Похожие ответы