Desenho em C # em Painéis

Estou elaborando um cronograma diário e representando intervalos de tempo com painéis, e os compromissos são ainda mais painéis no top

O usuário pode rolar para cima e para baixo para que o intervalo que eles podem ver seja alterado mais cedo ou mais tarde. Quando um compromisso termina no final do intervalo visível, quero que haja um zig-zag indicando que o compromisso se estende além dos limites visívei

Identifiquei o caso em que isso ocorre e chamo uma função privadadrawZigZag(Panel p, int direction); para desenhá-lo. O dia é espalhado horizontalmente e a direção -1 indica um zigue-zague à esquerda e 1 indica um zigue-zague à direit

Até agora, ainda não estou em zigue-zague, estou apenas experimentandoCreateGraphics() eFillPolygon(). Até agora eu tenho:

    private void drawZigZag(Panel p, int direction) // 1 = right, -1 = left
    {
        Graphics g = p.CreateGraphics();

        g.FillRectangle(new SolidBrush(Color.FromArgb(0, Color.Black)), p.DisplayRectangle);

        Point[] points = new Point[4];

        points[0] = new Point(0, 0);
        points[1] = new Point(0, p.Height);
        points[2] = new Point(p.Width, p.Height);
        points[3] = new Point(p.Width, 0);

        Brush brush = new SolidBrush(Color.DarkGreen);

        g.FillPolygon(brush, points);
    }

O primeiroFillRectangle() Eu não tinha originalmente. Eu apenas adicionei que quando oFillPolygon() não funcionou.

Basicamente, não está funcionando e não sei por que. O painel é da cor original - não foi preenchido com o DarkGreen. Eu useiCreateGraphics() antes para outras coisas, e não tenho muita certeza de por que não está funcionando neste caso. Alguma ideia

Edit: Desculpe, eu pensei que deveria mencionar: Existem váriosLabelontroles @ no meuPanel que descrevem o compromisso. Estes não devem ser cobertos, se possíve

questionAnswers(2)

yourAnswerToTheQuestion