Red de conocimiento informático - Computadora portátil - Programación en C#, cómo arrastrar una imagen para abrirla en el cuadro de imagen

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

this.pictureBox1.DragOver =new DragEventHandler(pictureBox1_DragOver);

this.pictureBox1.DragDrop =new DragEventHandler(pictureBox1_DragDrop);

this.pictureBox1.AllowDrop = true;

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.