C# Ungültig machen ist keine paint-Methode aufrufen

Ich habe OnPaint-Methode overrided so zeichnen Sie eine Ellipse auf dem Bildschirm.

    protected override void OnPaint(PaintEventArgs e)
    {
        MessageBox.Show("Paint");
        if (debugStarted)
        {
            int y = rtbLogicCode.PlaceToPoint(new Place(0, debugLine)).Y;
            if (rtbLogicCode.GetVisibleState(debugLine).ToString() == "Visible")
            {
                e.Graphics.FillEllipse(new LinearGradientBrush(new Rectangle(0, y, 15, 15), Color.LightPink, Color.Red, 45), 0, y, 15, 15);
            }
            base.OnPaint(e);
        }
    }

    private void rtbLogicCode_Scroll(object sender, ScrollEventArgs e)
    {
        this.Invalidate();
    }

Das scroll-Ereignis (Auf das Richtextbox-Steuerelement) ist richtig gehandhabt, aber obwohl ich mich entkräften die form, es ist kein Aufruf der OnPaint-Funktion (Die messagebox nicht angezeigt).

Was könnte die mögliche Ursache dafür?

Edit: ich habe vergessen zu erwähnen, dass auf meine Funktion zur Initialisierung des Kindes bilden (mehr als ein Steuerelement des Hauptformulars mit MDI-Eigenschaft), habe ich die folgenden Stile:

 private void LogicCodeInit()
    {


            this.SetStyle(ControlStyles.DoubleBuffer, true);
            this.SetStyle(ControlStyles.ResizeRedraw, true);
            this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
            this.SetStyle(ControlStyles.UserPaint, true);


    }

Edit2: ich habe auch vergessen zu erwähnen, dass das Kind die form wird Hinzugefügt, als eine Kontrolle des TabControl-Steuerelement. Das TabControl dann Hinzugefügt, als ein Steuerelement des Hauptformulars.

Sind Sie sicher, dass this.Invalidate() genannt wird? Was passiert, wenn Sie erzwingen, dass ein Neuanstrich meine Größenänderung des Fensters?
Ich bin sicher, dass invalidate aufgerufen wird (ich habe eine messagebox überprüfen diese auch.) Auch passiert nichts, wenn ich die Größe des Fensters ändern.

InformationsquelleAutor l46kok | 2012-07-09

Schreibe einen Kommentar