2009-08-01 4 views
1

C#의 GUI 폼 빌더를 사용하고 있습니다. TransparencyKey가 설정되어 있고 전체 양식의 backGround 색상이 투명성 키로 설정되어 양식의 배경이 보이지 않는 것처럼 보입니다. 처음에는 로그인 패널이 표시되고 사용자 로그인이 사라지고 다른 패널이 표시됩니다. 이 모든 것은 패널 중 하나를 겹쳐 쓰려고 할 때를 제외하고 모두 작동합니다. 뒤로 보내거나 앞쪽으로 가져와도 아무런 효과가 없습니다. 패널 중 하나라도 겹치면 겹치는 패널 둘 다 사라집니다. 무엇이 잘못 될 수 있습니까?C#의 겹침 패널

건배 그랜트

+2

문제를 만드는 가장 짧은 가능한 샘플 코드를 게시하는 것이 좋습니다. 그러면 응답이 훨씬 더 많이 발생합니다. – ShuggyCoUk

답변

1

이 윈폼 경우는 Z-주문의 전혀 개념이 없다. 각 패널은 상위 양식에 배경을 칠하도록 요청합니다. 이러한 이유로 WinForms 투명도는 예상대로 거의 작동하지 않습니다.

그런데, 필자는 왜 겹치는 부분이 있으면 패널이 완전히 사라지는 지 알지 못합니다. 나는 과거에 이런 유형의 것을 구현했지만 결코 그 행동을 보지 못했습니다. 아주 작은 샘플 프로젝트에서 이것을 재현하고 코드를 게시 할 수 있습니까?

+0

z 순서에 대해 어떤 의미인지 알 수 있습니다. 실제로 코드를 보여줄 필요가 없습니다. 투명성 키 (그리고 해당 투명성 키로 설정된 배경색)를 사용하여 양식을 간단하게 작성해야하는 경우. 패널 위에 놓으려고하면 패널이 사라집니다. 나 없이는 절대 키를 입력하지 않아. 나는 그것을 이해하지 못한다. 필자가 수행 한 결과는 런타임에 패널을 생성하는 코드를 작성하고 폼이 현재 위치한 위치를 기준으로 배치합니다. 어떤 이유로이 작동하지만 gui 편집기를 사용하여 만들 수 없습니다. 그래도 도와 ​​줘서 고마워. Grant- – cozmokramer8

5

내가 말하는 내용이 현재 수행중인 작업에 적용되는지 확실하지 않습니다. 나는 창문 형태의 패널과 비슷한 것을 오늘하려고 노력하고 있었다. 데이터 바인딩 된 컨트롤을 기반으로 가시성을 전환하고 싶었던 두 개의 패널이있었습니다. PanelY가 보이지 않으면 PanelX가 보입니다. 글쎄, 문제가 생겼어. PanelX이 보이고 PanelY가 보이지 않을거야. 그러나 PanelY가 표시되어야하고 PanelX이 보이지 않아야하는 양식 입력을 변경하면 둘 다 보이지 않습니다. 내가 한 일에 상관없이 PanelY를 볼 수 없었습니다.

그럼 해결책은 이것입니다. 나는 PanelY를 PanelX 내부에 배치했다. 내가 원했던 것은 PanelX과 PanelY가 둘 다 메인 양식 컨테이너에 있어야한다는 것이 었습니다. 하지만 PanelY는 PanelX의 컨테이너 안에있었습니다 ... PanelX이 보이지 않았고 PanelY가 보이도록해야했습니다. PanelY도 컨테이너 (PanelX)가 보이지 않아 보이지 않았습니다.

짧은 이야기이므로 패널이 올바른 컨테이너에 있는지 확인하십시오.

+0

나는 이것이 오래되었음을 알고 있지만, 나는 똑같은 일을했다고 말하고 싶다. 내가 찾은 가장 쉬운 해결 방법은 하나의 패널을 배치하여 (모두 겹쳐져있는 것으로 가정하고) 나머지 패널의 위치를 ​​해당 속성에 복사/붙여 넣기 (또는 사용자의 필요에 더 잘 맞으면 프로그래밍 방식으로 설정)하는 것입니다. . –