Oppure

Loading
26/10/11 15:59
cristian3095
salve a tutti, ho un piccolo problema... dovrei convertire in bitmap un panel che creo da codice, ho provato con
For each pan as panel in form2.controls
Dim bmp = new Bitmap(pan.Width, pan.Height)
pan.DrawToBitmap(bmp, new Rectangle(0, 0, pan.Width, pan.Height))
me.picturebox1.image=bmp
next

ma il risultato è una picturebox tutta "color control" (grigia)
premetto che ad ogni panel creato vengono assegnati dei controlli (textbox) ma nell'immagine vedo solo il panel vuoto...come è possibile questo?
aaa
26/10/11 19:42
GN
Stai usando un ciclo, quindi la picturebox visualizzerà solo l'ultimo panel: infatti, se setti l'immagine della picturebox ogni volta sovrascrivi quella precedente. In poche parole: se hai nel form un panel blu e uno rosso, la picturebox visualizzerà in teoria per prima cosa quello blu, ma la sua proprietà image verrà immediatamente modificata per visualizzare quello rosso.
aaa
26/10/11 20:20
cristian3095
si questo lo so...ho scritto il codice in quel modo ma in realtà creo la picturebox da codice e quindi il ciclo mi crea tante picturebox quanti panel, il location delle picturebox è gestito quindi non le mette sovrapposte, cmq il problema non è questo, il problema è che non mi converte il pannello in immagine...non so quale sia il motivo, può darsi che c'entra qualcosa che il panel non si trova nella stessa form della picturebox, ma non credo possa essere questo
aaa
27/10/11 14:54
Qwertj
I controlli non vengono disegnati sulla superficie del Panel, è normale che faccia così.
DrawToBitmap restituisce un'immagine creata a partire dall'oggetto Graphics del Panel, che non comprende assolutamente i controlli! Sono due cose distinte!
aaa
27/10/11 15:05
cristian3095
però se creo un progetto con un panel e alcuni controlli dentro, una picturebox e un bottone, e al bottone assegno il codice:
Dim bmp = new Bitmap(panel1.Width, panel1.Height)
panel1.DrawToBitmap(bmp, new Rectangle(0, 0,panel1.Width, panel1.Height))
picturebox1.backgroundimage=bmp

nella picturebox vengono visualizzati anche i controlli che ci sono dentro il panel... :om:
Ultima modifica effettuata da cristian3095 27/10/11 15:06
aaa
28/10/11 17:22
Qwertj
Ah >_> non lo sapevo, forse non agisce come pensavo ma ritagliano il pezzo di schermo corrispondente al viewport del Panel
aaa