74 messaggi dal 10 ottobre 2004
Salve,
ho creato una picturebox scrollabile in questo modo

Graphics g = picMappa.CreateGraphics();

g.DrawImage(picMappa.Image, new Rectangle(0, 0, picMappa.Right - vScrlMap.Width, picMappa.Bottom - hScrlMappa.Height),
new Rectangle(hScrlMappa.Value, vScrlMap.Value, picMappa.Right - vScrlMap.Width, picMappa.Bottom - hScrlMappa.Height), GraphicsUnit.Pixel);

picMappa.Update();


Fin qui tutto ok, però adesso voglio inserire su questa picturebox (che è la piantina di una città), delle immagini in maniera dinamica (altre picturebox che rappresentano i vari monumenti della città). Le immagini le inserisco, ma non le riesco a visualizzare sulla mappa. Inoltre, come posso fare che queste seguono lo scroll?

Le immagini le inserisco in questo modo (picMappa è la picturebox contenitore)

PictureBox pic = new PictureBox();
pic.Left = 400; 
pic.Top = 400; 
pic.SizeMode = PictureBoxSizeMode.StretchImage;
pic.Image = Image.FromFile("C:\\poi.gif");
pic.ClientSize = new Size(pic.Image.Width, pic.Image.Height);
picMappa.Controls.Add(pic);
pic.BringToFront();
501 messaggi dal 09 giugno 2006
Contributi
Ciao.

Indipendentemente dal problema che hai ti suggerisco un'altra soluzione radicale che risolve sia lo scorrimento che il posizionamento delle mappe.

Anziché lavorare attorno agli oggetti picMappa, vScrlMap e hScrlMappa e gestire il codice per posizionare ed aggiornare l'immagine, utilizza un oggetto Panel ed attiva la proprietà AutoScroll (= True).

A questo punto crea un oggetto di tipo PictureBox (il tuo picMappa), aggiungilo a Panel1.Controls, assegna l'immagine, assegna la proprietà SizeMode a AutoSize, assegna la proprietà Location a 0,0, visualizza il controllo (.Visible = True - questo è il problema per il quale l'immagine non veniva visualizzata).

Fai la stessa cosa con le altre immagini (cambiano chiaramente la Location, il SizeMode e la proprietà Image) aggiuntive avendo l'accortezza di portale in primo piano rispetto all'immagine iniziale di fondo (metodo BringToFront). Ricordati sempre di porre a True la proprietà Visible.

Dovrebbe funzionare tutto. Se non ti trovi dimmelo che ti posto un esempio completo.

Ciao.

.:. Marcello Rutter .:.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.