Первая строка рисует текст на вашей панели, и если вы хотите, чтобы текст отображался, вы должны обновить панель. Главное в использовании panel1.Pain + = new PaintEventHandler (ваше пустое имя); и panel1.Refresh ();

тавляю расписание дня и представляю временные интервалы с панелями, а встречи - это еще больше панелей сверху.

Пользователь может прокручивать вверх и вниз, так что диапазон, который он видит, смещается раньше или позже. Когда встреча выходит за пределы видимого диапазона, я хочу, чтобы там был зигзаг, указывающий, что встреча выходит за пределы видимых границ.

Я определил случай, когда это происходит, и я вызываю частную функциюdrawZigZag(Panel p, int direction); нарисовать это. День распространяется горизонтально, и направление -1 указывает на зигзаг слева, а 1 указывает на зигзаг справа.

Пока что я не до зигзага, я просто экспериментирую сCreateGraphics() а такжеFillPolygon(), Пока что у меня есть:

    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);
    }

ПервыйFillRectangle() У меня изначально не было Я только добавил, что когдаFillPolygon() не работал

В принципе, это не работает, и я не уверен, почему. Панель имеет оригинальный цвет - она ​​не была закрашена DarkGreen. Я использовалCreateGraphics() раньше для других вещей, и я не совсем уверен, почему это не работает в этом случае. Есть идеи?

Изменить: Извините, я думал, что должен упомянуть: Есть несколькоLabel контролирует на моемPanel которые описывают назначение. Они не должны быть покрыты, если это возможно.

Ответы на вопрос(2)

Ваш ответ на вопрос