Панель в приложении Windows Forms не очищается - PullRequest
0 голосов
/ 12 мая 2010

Я работаю над своим проектом: [Система управления пивным понгом] [1], приложение Windows Forms. В настоящее время я пытаюсь добавить в него целый режим турнира. Короче говоря, я создал TabControl с первой вкладкой с настройками и настройками и второй страницей с квадратными скобками.

Для каждого из матчей есть функция, согласно которой после определения победителя появится желтая кнопка отмены, чтобы отменить турнир. Однако моя проблема заключается в том, что когда я нажимаю кнопку, следующий матч не удаляется в серии. Смотрите ниже:

Изображение здесь (недостаточно высокая репутация для вставки изображения)

Я попытался установить для MatchUp значение null, я попытался dispose (), close (). даже Parent.Controls.Remove (). Даже после того, как я переключаю вкладки, которые должны очистить все, они все еще сидят там, когда я возвращаюсь.

У меня такое чувство, что я могу потерять ссылку или что-то в этом роде, потому что я даже не могу толкнуть в них новые команды, они просто сидят там со своими кнопками.

Есть ли у кого-нибудь какие-либо советы или какие-либо известные проблемы, которые могут быть причиной этого? Спасибо.

[1] _ http://www.cs.rit.edu/~rmb1201/pages/code.shtml

1 Ответ

1 голос
/ 12 мая 2010

Может быть, этот фрагмент поможет вам определить проблему:

    public string GetControlSummary(Control rootControl, int level)
    {
        string result = "";
        foreach (Control childControl in rootControl.Controls)
        {
            result += new string(' ', level * 4) + childControl.Name + " (" + childControl.GetType().Name + ")\r\n";
            result += GetControlSummary(childControl, level + 1);
        }
        return result;
    }

Просто передайте tabPage или Panel, к которой вы добавили свои элементы управления; это даст вам список всех элементов управления и подэлементов управления, которые вы добавили. Если элементы управления отсутствуют в списке, они также не должны быть нарисованы.

...