incluya "System.Drawing.dll" clase Foto privados el objeto ima es un Bitmap(1, 1) los objetos x, y son Cantidades el objeto texto es un Caracter publicos Mensajes Foto { nop } Píntese(deme g es un Graphics) g.DrawImage(ima, x, y) NuevaUbicación(deme xe, deme ye) { copie xe en x copie ye en y } NuevaImagen { el objeto dial es un OpenFileDialog dial.ShowDialog el objeto nuevaima es un Bitmap(dial.FileName) copie nuevaima en ima } /***********************/ clase v derivada_de Form publicos los objetos Grupo, Imágenes son ArrayList los objetos i, j son Cantidades el objeto t es un Timer Mensajes v { v.Manejador(v.Paint, pinta) v.Manejador(v.MouseDown, pulsa) v.Manejador(v.MouseMove, mueve) v.Manejador(t.Tick, ya) copie 150 en t.Interval t.Start copie ":-)" en v.Text Grupo.Add("ºJº") Grupo.Add("ºJº") Grupo.Add("ºJº") Grupo.Add("ºJº") Grupo.Add("ºjº") Grupo.Add("ºjº") Grupo.Add("ºjº") Grupo.Add("º|º") Grupo.Add("º-º") Grupo.Add("º..º") Grupo.Add("º_º") Grupo.Add("º.º") Grupo.Add("º.º") Grupo.Add("º.º") Grupo.Add("ºoº") Grupo.Add("ºoº") Grupo.Add("ºOº") Grupo.Add("ºXº") Grupo.Add("ºxº") Grupo.Add("ºxº") Grupo.Add("º.º") Grupo.Add("º.º") Grupo.Add("º.º") } ya(deme nc, deme paq es un EventArgs) { es j < Grupo.Count ? si: { copie Grupo[j] en v.Text copie j + 1 en j } no: copie 0 en j } mueve(deme nc, deme paq es un MouseEventArgs) { nop } pulsa(deme nc, deme paq es un MouseEventArgs) { es paq.Button = MouseButtons.Right ? si: { el objeto nuevo es una Foto nuevo.NuevaImagen nuevo.NuevaUbicación(paq.X, paq.Y) Imágenes.Add(nuevo) } v.Refresh } pinta(deme nc, deme paq es un PaintEventArgs) { variando i desde 0 hasta Imágenes.Count-1 haga: { el objeto actual es una Foto no_crear copie Imágenes[i] en actual actual.píntese(paq.Graphics) } }