Первая строка рисует текст на вашей панели, и если вы хотите, чтобы текст отображался, вы должны обновить панель. Главное в использовании 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
которые описывают назначение. Они не должны быть покрыты, если это возможно.