Перекрывающиеся панели в C # - PullRequest
1 голос
/ 02 августа 2009

Я использую конструктор форм GUI в c #. У меня установлен параметр TransparencyKey, и для этого ключа прозрачности задан цвет backGround всей формы, поэтому фон формы кажется невидимым. У меня также есть панель входа в систему, которая появляется сначала, а после входа пользователя она исчезает, и другие панели становятся видимыми. Это все работает, за исключением случаев, когда я пытаюсь перекрыть любую из панелей. Отправить назад или принести на передний план не имеет значения. Если хотя бы одна из панелей немного перекрывает обе эти панели исчезают? Что может быть не так?

Приветствие Грант

Ответы [ 2 ]

5 голосов
/ 31 июля 2010

Не уверен, что то, что я скажу, будет применяться к тому, что вы делаете. Я пытался сделать что-то подобное сегодня с панелями в моей форме окон. У меня было две панели, которые я хотел переключать их видимость на основе элемента управления с привязкой к данным. PanelX будет видна, пока PanelY не будет видна. Ну, у меня возникла проблема ... PanelX будет видна, а PanelY будет невидима. Но если я изменил входные данные формы так, чтобы PanelY была видна, а PanelX должна быть невидимой, они оба были невидимы. Я не мог сделать PanelY видимым, что бы я ни делал.

Ну, решение было это. Я поместил PanelY в PanelX (не понимая, что я сделал, конечно). Я хотел, чтобы PanelX и PanelY были в основном контейнере формы. Но, как я уже сказал, PanelY была внутри контейнера PanelX ... поэтому, когда PanelX была невидимой и PanelY должна была быть видимой, PanelY была также невидимой, потому что ее контейнер (PanelX) был невидим.

Короче говоря, убедитесь, что ваши Panel находятся в правильном контейнере.

1 голос
/ 05 августа 2009

Если это WinForms, Z-Order вообще отсутствует. Каждая панель попросит родительскую форму нарисовать фон. По этой причине прозрачность WinForms редко работает так, как вы ожидаете.

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

...