Ho creato un controllo utente Windows Form, ho trascinato, lasciato cadere un pannello al suo interno e sul pannello ho disegnato il grafico nell'evento Paint di Panel.Panel Control Paint Evento non funzionante per User Control
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**
}
Quando ho trascinare questo controllo utente su una WinForm, si chiama questo evento vernice di controllo utente dalla forma finestre, ma durante la chiamata a questo evento viene mostrato il grafico, ma dopo qualche tempo il grafico diventa vuota.
Ho provato Invalidate(true), Update(), Refresh()
tutti questi metodi ma erano inutili.
realtà mostra la metà del grafico sulla forma e dopo la prossima lo stesso evento vernice viene licenziato poi mostra il grafico completo che ho bisogno, ma in realtà io voglio il primo evento Paint invece di grafici metà mostrando il grafico completo.
Come si disegna in 'DrawWaveForm()' senza passare un oggetto 'Graphics'? – Andy
@Andy scusate solo che ho dimenticato di aggiungerlo grazie per mostrare il mio stupido errore aggiornare anche il codice grazie ancora ........ –
Questo problema è risolto correggendo quell'errore? –