PDA

View Full Version : [c#]System.Drawing per Grafico e ScrollBar


ohi
08-11-2010, 11:18
Ciao io ho disegnato su una PictureBox un grafico che però trasborda della finestra per cui vorrei utilizzarre una scrollbar orizzontale per poterlo visualizzare interamente, ho configurato lo scrollbar in questo modo:

//Configure the horizontal scrollbar
//---------------------------------------------
if (this.hScrollBar1.Visible)
{
this.hScrollBar1.Minimum = 0;
this.hScrollBar1.SmallChange = this.pictureBox1.Width / 20;
this.hScrollBar1.LargeChange = this.pictureBox1.Width / 10;

this.hScrollBar1.Maximum = this.pictureBox1.Image.Size.Width - pictureBox1.ClientSize.Width; //step 1


this.hScrollBar1.Maximum += this.hScrollBar1.LargeChange; //step 3
}

Ora però quando muovo il cursore non succede niente. Il grafico da me disegnato è rimasto da qualcheparte?

MarcoGG
11-11-2010, 10:19
Puoi semplicemente inserire la PictureBox in un Panel, in modo che occupi praticamente tutta l'area del Panel stesso.
A questo punto, ad ogni incremento della figura che compone il grafico, tieni traccia della X dell'ultimo elemento aggiunto ( quello più a destra, di solito ... ).
Quella "X" sarà il punto in cui inserire e successivamente spostare a destra un controllo qualsiasi ( pulsante, label, ecc., mettiamo 1x1 pixel, in modo che sia praticamente invisibile ).
A quel punto il Panel scrollerà da solo senza alcun bisogno di "aiutini".
Per quanto riguarda la persistenza del Refresh del grafico, basta che metti i punti notevoli in un Array o List e refreshi quando vuoi...

Spiegato così è un po' criptico, ma sono sicuro che in questo Forum c'è una discussione in cui spiego ad un altro utente la stessa cosa con relativo codice ( penso fosse VB NET, insomma a questo livello di complessità, praticamente siamo al C# senza graffe e punto-e-virgola ).