C# Graphics.clear()工作不正常

C# Graphics.clear()工作不正常,c#,.net,winforms,controls,C#,.net,Winforms,Controls,我在获取图形时遇到很多问题。clear()工作正常 它不是清除整个控件,而是执行以下操作: 这是我的UserControl类: public partial class Screen : UserControl { Graphics sg; public Screen() { InitializeComponent(); sg = this.CreateGraphics(); this.ResizeRedraw = tru

我在获取图形时遇到很多问题。clear()工作正常

它不是清除整个控件,而是执行以下操作:

这是我的UserControl类:

public partial class Screen : UserControl
{
    Graphics sg;
    public Screen()
    {
        InitializeComponent();
        sg = this.CreateGraphics();
        this.ResizeRedraw = true;
        this.DoubleBuffered = true;
    }
    public void drawPixel(int x, int y,Color c)
    {
        sg.DrawRectangle(new Pen(c,1),x,y,1,1);
    }
    public void clear()
    {
        sg.Clear(Color.Black);
    }
}

当您存储图形对象时,这是一个完全正常的灾难。总是做错事。其剪裁区域基于创建控件时控件的大小。大小更改时无法正常工作。必须通过重写OnPaint()方法来正确执行此操作,而应使用传递的e.Graphics对象。您可能应该使用位图对象来实现drawPixel()。要使此性能足够好,请添加一个updateImage()方法来调用this.Invalidate(),以便重新绘制屏幕上的位图。不过,仍然会给您带来同样的问题。谢谢,我认为这不会像java图形那么容易。听起来比现在更难;但是使用
CreateGraphics
会让你一开始就走错路。另请注意:
图形
对象不包含任何图形;它是一种工具,允许您在相关位图上绘制,包括控件的表面。-对于更详细的建议,我们只是对您想要实现的目标了解不够。。