Panel과 작은 pictureBox로 구성된 사용자 지정 컨트롤이 있습니다. DrawLine을 왼쪽, 위쪽에서 오른쪽, 아래쪽 pictureBox에서 시작할 때 시작점은 pictureBox의 구석에서 시작하지 않고 + x 및 + y 오프셋입니다. Panel의 전체 크기를 차지하도록 pictureBox를 확장하면 올바르게 정렬됩니다. 무슨 일이야?DrawLine : 위쪽과 왼쪽이 잘못되었습니다.
pictureBox는 위쪽, 아래쪽, 왼쪽 및 오른쪽에 앵커됩니다. 도킹 금지.
private void pictureBoxPlot_Paint(object sender, PaintEventArgs e)
{
base.OnPaint(e);
e.Graphics.DrawLine(Pens.LightGray,
pictureBoxPlot.Left, pictureBoxPlot.Top,
pictureBoxPlot.Right, pictureBoxPlot.Bottom);
pictureBoxPlot.Invalidate();
}
패널의 Paint 이벤트를 사용할 수있는 경우 * 추가 * 컨트롤을 사용하는 이유가 궁금합니다. 패널에서 0이 아닌 Location을 갖지 않는 컨트롤을 넘어 PictureBox는 e.Graphics 객체를 변경하여 SizeMode 속성을 구현합니다. 여기는 Location 속성입니다. PictureBox를 사용하면 DoubleBuffered 속성을 true로 설정하는 데 실제로 비용이 많이 듭니다. –
부모의 영역 내에서 (그리고 그 이상으로) 드로잉을 할 때부터 다른 컨트롤을 가리고 있었고 OnPaint()가이를 업데이트 할 것이라고 생각했습니다 ... 처음으로 드로잉 코드를 작성했습니다 ... 감사합니다. – moose