중첩 된 컨트롤을 사용하여 응용 프로그램을 작성하고 Control.Paint
이벤트 처리기를 사용자 지정 테두리를 그리려면 노력하고있어. 아마의 아이콘을 포함하는 "ChocoTester 정보"및 "보기 버전 ..."라벨뿐만 아니라, PictureBox
등이, 또한 국경을 그리는 방법컨트롤 상속 부모의 사용자 지정 그리기 코드
공지 사항 (그리고 아래 이미지 참조 배경색도 있지만, 즉시 볼 수는 없습니다). 가장 바깥 쪽 상자에 Control.Paint
이벤트 처리기를 추가했습니다. . 그러나 어떤 이유로 인해 자식 컨트롤은 부모의 Paint 이벤트 코드를 상속합니다. 이 프로젝트에서 작업하기 전까지는 Windows Forms에서이 작업을 수행하는 것을 본 적이 없습니다.
자식 컨트롤의 BackColor
은 Transparent
입니다. 이것은 위에서 설명한 증상과 관련이있을 수도 있고 없을 수도 있습니다. 부모가 사용자 지정 Paint
이벤트를 가진 다른 컨트롤의 자식 컨트롤은 표준 Label
인스턴스이거나 사용자 지정 그리기 코드가 자체적 인 패널이므로이 동작을 나타냅니다.
Rectangle r = e.ClipRectangle; r.Inflate(-1, -1);
e.Graphics.FillRectangle(Brushes.AliceBlue, r);
e.Graphics.DrawRectangle(Pens.DarkBlue, r);
은 문제를 재현하는 코드를 공유합니다. –