Динамические вкладки не могут быть найдены в Tab Control - PullRequest
0 голосов
/ 05 июня 2018

Добрый день, мои коллеги пропеллера головы;Сегодня я прихожу к вам с очень странной проблемой.

В моем приложении C # Winforms есть форма с элементом управления Tab.Элемент управления вкладками имеет 4 вкладки, которые я добавил во время разработки.Когда мое приложение запускается, я динамически добавляю x вкладок.

Моя проблема связана не с какими-либо вкладками, которые я добавил во время разработки, а только с динамическими вкладками.Динамические вкладки имеют кнопки, которые хорошо работают при нажатии.Однако, когда я перебираю страницы вкладок элемента управления вкладками, присутствуют только статические страницы вкладок, ни одна из динамических страниц не находится в элементе управления.

У меня есть класс, который создает мои страницы вкладок, и все работает нормальнои добавляет вкладки как следует.Имя класса - TabTree, а имя метода - Add_Tree_View_Tab.«Тестовая вкладка» - это текст, отображаемый на вкладке.Нулевой параметр в настоящее время не имеет значения, поскольку он вводится в другой элемент управления, закрепленный на вкладке.

tabRecords.TabPages.Add(TabTree.Add_Tree_View_Tab("test tab", null));

Я также добавил только вкладку, чтобы посмотреть, смогу ли я найти ее в элементе управления вкладкой,но все равно не повезло.

tabRecords.TabPages.Add("this page", "this page");

Попытка найти одну из моих динамических вкладок не дает результата?

internal void Expand_Treeview(object sender, EventArgs e)
{
    try
    {
        Button button = (Button)sender;

        foreach (TabPage tab_page in tabRecords.TabPages)
        {
            if (tab_page.Name == "tab_" + button.Tag.ToString())
            {
                foreach (Control control in tab_page.Controls)
                {
                    if (control is TreeView && control.Name == "treeview_" + button.Tag.ToString())
                    {
                        TreeView Tree_view = (TreeView)control;


                    }
                }
            }
        }
    }

    catch (Exception ex)
    { }
}

Что я делаю неправильно или чего мне не хватает?Я потратил хорошую пару наших, пытаясь выяснить это без решения пока ...

1 Ответ

0 голосов
/ 05 июня 2018

Спасибо за помощь от всех, вы определенно поставили меня на правильный путь.Это был случай разных экземпляров и уничтоженных объектов.

Существует два класса, которые создают динамические вкладки.Первый класс создается, но также наследуется от второго класса.Кроме того, второй класс наследует от фактической формы, чтобы иметь возможность добавить обработчик событий динамических кнопок, который существует на вкладке.Вкладки создаются, но как только первый экземпляр класса уничтожается, все ссылки на динамические вкладки теряются.Что имеет смысл.Я не уловил его, так как это унаследованный код.

Еще раз спасибо за вклад всех, кто меня отсортировал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...