Programación en C#, cómo arrastrar una imagen para abrirla en el cuadro de imagen
imagen vacía privadaBox1_DragOver(remitente del objeto, DragEventArgs e)
{
if ((e.AllowedEffect & DragDropEffects.Link) == DragDropEffects.Link)
{
e.Effect = DragDropEffects.Link;
}
}
imagen vacía privadaBox1_DragDrop( objeto remitente, DragEventArgs e)
{
string[] items = (object)e.Data.GetData("FileNameW") as string[];
if (items.Length == 1)
{
System.Drawing.Image img = System.Drawing.Image.FromFile(items[0]);
this.pictureBox1.Image = img;
}
}
Escribe las siguientes tres líneas en el constructor de formulario o evento de carga p>
this.pictureBox1.DragOver =new DragEventHandler(pictureBox1_DragOver);
this.pictureBox1.DragDrop =new DragEventHandler(pictureBox1_DragDrop);
this.pictureBox1.AllowDrop = true; p>
El código ha sido probado y no hay ningún problema
El atributo AllowDrop de PictureBox de hecho no es perceptible, pero la clase PictureBox contiene la definición de este atributo. Puede ir a Ir a definición. para echarle un vistazo
No habrá problema si escribes así, porque este atributo añade dos Atributos donde está definido:
// Resumen:
// Anula la propiedad System.Windows.Forms.Control.AllowDrop.
[EditorBrowsable(1)]
[Browsable(false)]
public override bool AllowDrop { get; set; }
Estipulan si este atributo es visible. Para más detalles, puede consultar MSDN
Gracias también al cartel original. Hace mucho tiempo y no lo descubrí en ese momento, hoy lo mencionaste y lo descubrí, adquirí algunos conocimientos, ¡muchas gracias!
------------------------------------------- -- ---
Quieres hacer un tablero de dibujo....
void pictureBox1_MouseUp(remitente del objeto, MouseEventArgs e)
p>
{
if (e.Button == MouseButtons.Left)
{
p2 = nuevo Punto(e.X, e.Y);
Rectángulo rec = nuevo Rectángulo();
Gráficos g1= this.pictureBox1.CreateGraphics();
g1.DrawRectangle(new Pen(Brushes.Black) , nuevo Rectángulo(p1, nuevo Tamaño(p2.X - p1.X, p2.Y - p1.Y)));
}
}
void pictureBox1_MouseDown(objeto remitente, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
p1 = new Point(e.X, e.Y);
}
}
p1 y p2 son dos miembros de clase de tipo Punto. También es posible. declarar un rectángulo.
No necesito enseñarte cómo registrar un evento.
Esto es para dibujar un cuadrado, también se pueden dibujar otros gráficos, es decir, debe configurar una bandera para registrar el estado actual del mouse y luego juzgar y calcular al dibujar. No escribiré el código específico
yloverong: ¡gracias~! No importa, no puedes conseguir comida por este puntaje ~ está bien.