| Manuel Bosio |
PictureBox
Ho un problema:
Devo trasportare un'applicazione che ho scritto per i Pocket su Pc. L'interfaccia grafica sarà diversa, ma il cuore del Prg sarà quasi lo stesso. Il mio problema è che devo disegnare a video (come nell'esempio) ma se sposto la PictureBox..o ridimensiono o porto in secondo piano...perdo tutto quello che ho disegnato... Qualcuno ha qualche idea? L'utente colora i quadratini e può anche scrivere... (è un cad tessile) Grazie a tutti Bosio |
| Corrado Cavalli |
Re: PictureBox
Prova a spostare la parte di ridisegno nell'evento Paint del form.
HTH Corrado |
| Manuel Bosio |
Re: PictureBox
Già fatto...ma è un pochino troppo lento...
Devo farlo girare anche su Pentium 100 con win 98 e 32/64 di ram... Salvare l'immagine in un file Tmp e ricaricarlo all'occorrenza? (sempre tramite PAINT) che ne dici? |
| Raffaele Rialdi |
Re: PictureBox
on 13. Jul 2004 13:43 Manuel Bosio wrote:
> Già fatto...ma è un pochino troppo lento... > Devo farlo girare anche su Pentium 100 con win 98 e 32/64 di ram... > Salvare l'immagine in un file Tmp e ricaricarlo all'occorrenza? (sempre tramite PAINT) > che ne dici? La picturebox in alcune operazioni può essere molto lenta. Forse ti conviene usare direttamente la DrawImage. Raffaele |
| Manuel Bosio |
Re: PictureBox
Problema risolto:
Public Function Inizializza(ByVal Left As Integer) Ptb.Visible = False 'Inizializza Pnl_Box.Controls.Add(Ptb) Ptb.BorderStyle = BorderStyle.FixedSingle Ptb.Size = New System.Drawing.Size(Larg_Col * N_Colonne + 2, Altezza_Riga * N_Righe + 2) Ptb.Location = New System.Drawing.Point(Left, 0) Ptb.Image = New Bitmap(Ptb.Width, Ptb.Height) G = Graphics.FromImage(Ptb.Image) G.Clear(Back_Color) 'Disegna Griglie Dim XX, YY As Integer For YY = 0 To Ptb.Height Step Altezza_Riga G.DrawLine(Penna, 0, YY, Ptb.Width, YY) Next For XX = 0 To Ptb.Width Step Larg_Col G.DrawLine(Penna, XX, 0, XX, Ptb.Height) Next Ptb.Visible = True ' Ptb.Refresh() Return (Ptb.Width + Ptb.Left - 1) End Function Disegno su una IMAGE creata in una PITURE_BOX, anche riducendo ad icona tutto ok Grazie a TUTTI :-) |
| Raffaele Rialdi |
Re: PictureBox
on 21. Jul 2004 09:31 Manuel Bosio wrote:
> Problema risolto: [...] visto che ti cancelli da solo il background, ti consiglio di settare con SetStyle i flag di redraw in modo da migliorare la velocità di ritraccio ed eliminare il flickering: AllPaintingInWmPaint true DoubleBuffer true UserPaint true Opaque true SupportsTransparentBackColor false ResizeRedraw (vedi tu) I primi tre sono i più importanti. Raffaele |
| Manuel Bosio |
Re: PictureBox
Scusa ma SetStyle dove lo trovo? devo creare un ControlStyles e associarlo al form/ Picture / image / oggetto Grafico? scusa la mia ignoranza ma normalmente scrivo per PDA e non è da molto che uso VB .NET
Grazie Manuel |
| Raffaele Rialdi |
Re: PictureBox
on 21. Jul 2004 14:32 Manuel Bosio wrote:
> Scusa ma SetStyle dove lo trovo? devo creare un ControlStyles e associarlo al form/ Picture / image / oggetto > Grafico? scusa la mia ignoranza ma normalmente scrivo per PDA e non è da molto che uso VB .NET Tutti i controlli derivati da Control lo hanno: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWindowsFormsControlClassSetStyleTopic.asp Raffaele |
| Manuel Bosio |
Re: PictureBox
Grazie 1000 ^ 1000
|
| Raffaele Rialdi |
Re: PictureBox
on 22. Jul 2004 15:00 Manuel Bosio wrote:
> Grazie 1000 ^ 1000 Prego :) Raffaele |