이 사이트와 다른 사이트에서 많이 묻는 것을 보았습니다. 그러나 아직 답을 찾지 못했습니다. 내가 뭘하려는 건지 대략 10x10 크기의 직사각형을 연속으로 그립니다. 그래서 버튼이, 내가 그것을 클릭하면, 그것은패널 내부 드로잉
xgraphics = pnlContainer.CreateGraphics();
xgraphics.FillRectangle(new SolidBrush(Color.Red), xAxis, yAxis, 10, 10);
pnlContainer.AutoScrollPosition = new Point(Convert.ToInt32(xAxis),Convert.ToInt32(yAxis));
yAxis += 10;
그것은 다음 사각형을 만들어 또 다른 사각형 생성을 클릭 다음에, 아래로 이동하여 내 패널 내부에 사각형을 만듭니다 가지고 있지만 지금은 등 아래쪽과의 기타 등등. 나는 여기에 autoscoll이있는 패널 안에 패널을 놓아서 화면을 스크롤하는 방법과 바닥에 도달했을 때 내부 패널의 높이를 올리는 방법에 대해 읽었습니다. 그것은 대단한 작품 !! 패널 스크롤바가 나타나면 모든 그래픽이 지워집니다.
나는 이것을 사용하여 invalidate(); 하지만 이렇게하면 그래픽을 사각형으로 변환 할 수 없다는 오류가 발생합니다. 그래서 F 무엇?
나는이 작업을 수행 할 수 MSDN에서 볼:
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
// Draw the rectangle...
e.Graphics.DrawRectangle(new Pen(Color.Blue, PenWidth), RcDraw);
}
그러나,이 내 상황에서 작업을 못해 마우스를 사용하여 사각형을 만듭니다. 간단히 말해 패널에 직사각형을 만들 수 있어야합니다. 패널이 맨 아래에 오면 스크롤하고 더 많은 직사각형을 추가 할 수있게됩니다 ... 그다지 힘들지는 않지만, 근본적인 것 또는 무엇인가 놓치고 있고, 그것은 정말로 나의 기어를 갈기 시작하고있다! 도와주세요!
컨트롤에 직접 칠하는 경우 컨트롤을 다시 칠하거나 페인트를 잃을 때마다 페인트 처리기에서이 작업을 수행해야합니다. 재사용 할 때 다시 채 웁니다. 덮어 쓴 다음 덮어 씌우면됩니다. 비트 맵에 페인팅을 한 다음 페인트 메서드의 컨트롤에 blit합니다. – Blorgbeard