winform 크기를 조정할 때 문제가 있습니다. 나는 내가 또한이 양식 텍스트 상자, 레이블 등을 포함하는 그룹 상자에winform의 크기를 조정 한 후의 페인트 문제
protected override void OnPaintBackground(PaintEventArgs e)
{
DoubleBuffered = true;
ResizeRedraw = true;
using (var brush = new LinearGradientBrush(ClientRectangle, Color.LightBlue, Color.CornflowerBlue, 90F))
{
e.Graphics.FillRectangle(brush, ClientRectangle);
}
}
을 다음과 배경색이 설정되는 정도로 나는 OnPaintBackground 메소드를 오버라이드 (override) 한 내 모든 형태에 특정 배경색을주고 싶어 투명한 것으로. 처음에는 winform이 실행될 때 정상적으로 작동하지만 winform을 최소화 한 다음 빨간색을 최대화하면 그룹 상자 안에 CROSS가 표시됩니다.
많은 사례를 검토했지만 대부분 깜박임에 대해 이야기하지만 이는 사실이 아닙니다. 나도 그 그림이 어떻게 작동하는지에 대해 읽었습니다. 분명히 winform이 먼저 표시 될 때 자식 컨트롤에 자신을 페인트하도록 지시하지만 아버지는 아직 페인트되지 않았기 때문에 컨트롤이 배경에 대해 투명한 부분으로 무엇을 페인트해야할지 모릅니다. 컨트롤의.
다음은 크기를 조정 한 후의 모습입니다. 당신의 도움을 위해 고급의
감사합니다!
추신 : 저는 Visual Studio 2012, C#을 사용하고 있습니다.
프로 시저가 처리되지 않은 예외를 throw하면 적십자가 나타납니다. try : try 블록에 catch하고 예외에서 중단하십시오. 어쩌면 예외 설명은 당신에게 힌트를 줄 수 있습니다 –
Miroslav 답변을 주셔서 감사합니다. 실제로 catch 라인을 통과 할 때 messageBox에 예외를 두었습니다. 그것은 다음과 같습니다 : 사각형 너비 또는 높이 "0"같을 수 없습니다. 나는 다음 조건문을 넣었고 완벽하게 잘 작동했다 !! 내 응용 프로그램을 debbug하는 방법에 대한 팁 주셔서 감사합니다. 마지막 코드는 다음과 같습니다. – Matias
코드를 try catch 문 안에 넣고 다음 조건을 추가했습니다. (ClientRectangle.Width! = 0 && ClientRectangle.Height! = 0) {// 여기에서 다시 그려주십시오} – Matias