Я создал один пользовательский элемент управления Windows Forms, я перетащил его, отбросил панель внутри него, а над панелью я нарисовал график в событии Paint Panel.Панель управления Paint Event не работает для управления пользователями
private void pnlViewer_Paint(object sender, PaintEventArgs e)
{
e.Graphics.TranslateTransform(pnlViewer.AutoScrollPosition.X, pnlViewer.AutoScrollPosition.Y);
e.Graphics.FillRectangle(Brushes.Black, Screen.PrimaryScreen.Bounds);
//**draw Y Axis**
int y;
for (int i = 0; i <= 50; i++)
{
y = (i * cellHeight) + cellHeight;
e.Graphics.DrawLine(new Pen(Color.FromArgb(50, 50, 50)),
new Point(0, y), new Point(pageWidth, y));
}
//**draw X Axis**
int x;
for (int i = 0; i < 50; i++)
{
x = (i * cellWidth) + ribbonWidth;
e.Graphics.DrawLine(new Pen(Color.FromArgb(50, 50, 50)),
new Point(x, 0), new Point(x, pageHeight));
}
DrawWaveForm(e.Graphics); **// Here the actual data of graph will draw**
}
Когда я перетащить это пользовательский элемент управления на WinForm, он называет это краски события пользовательского элемента управления из окна формы, но при вызове к этому событию графы отображаются, но по прошествии некоторого времени графы становятся пустыми.
Я пробовал Invalidate(true), Update(), Refresh()
все такие методы, но они были бесполезны.
Фактически это показывает половину графика над формой, и после того, как после этого произойдет одно и то же событие рисования, он отобразит полный график, который мне нужен, но на самом деле я хочу на первом событии Paint вместо половины графиков, отображающих полный график.
Как вы рисуете в 'DrawWaveForm()' без прохождения объекта 'Graphics'? – Andy
@ Энди, извините, просто я забыл добавить его благодаря тому, чтобы показать мою глупую ошибку, также обновить код, спасибо снова ........ –
Решено ли это сейчас, исправив эту ошибку? –