Csharp/CSharp Tutorial/GUI Windows Forms/Drag Move — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 12:15, 26 мая 2010
Drag and Drop Image
using System;
using System.Drawing;
using System.Collections;
using System.ruponentModel;
using System.Windows.Forms;
using System.Data;
public class ImageDragDrop : System.Windows.Forms.Form
{
private System.ruponentModel.Container components = null;
private bool isDragging = false;
private int oldX, oldY;
Rectangle dropRect = new Rectangle(100, 100, 150, 150);
private PictureBox picBox = new PictureBox();
public ImageDragDrop()
{
InitializeComponent();
CenterToScreen();
picBox.SizeMode = PictureBoxSizeMode.StretchImage;
picBox.Location = new System.Drawing.Point(64, 32);
picBox.Size = new System.Drawing.Size(50, 50);
picBox.Image = new Bitmap("YourFile.bmp");
picBox.MouseDown += new MouseEventHandler(picBox_MouseDown);
picBox.MouseUp += new MouseEventHandler(picBox_MouseUp);
picBox.MouseMove += new MouseEventHandler(picBox_MouseMove);
picBox.Cursor = Cursors.Hand;
Controls.Add(picBox);
}
protected override void Dispose( bool disposing )
{
picBox.Dispose();
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
private void InitializeComponent()
{
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 273);
this.Name = "ImageDragDrop";
this.Text = "Dragging Images";
this.Paint += new System.Windows.Forms.PaintEventHandler(this.ImageDragDrop_Paint);
}
[STAThread]
static void Main()
{
Application.Run(new ImageDragDrop());
}
private void picBox_MouseDown(object sender, MouseEventArgs e)
{
isDragging = true;
oldX = e.X;
oldY = e.Y;
}
private void picBox_MouseMove(object sender, MouseEventArgs e)
{
if (isDragging)
{
picBox.Top = picBox.Top + (e.Y - oldY);
picBox.Left = picBox.Left + (e.X - oldX);
}
}
private void picBox_MouseUp(object sender, MouseEventArgs e)
{
isDragging = false;
if(dropRect.Contains(picBox.Bounds))
{
MessageBox.Show("Message", "In Rectangle");
}
}
private void ImageDragDrop_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Graphics g = e.Graphics;
g.FillRectangle(Brushes.Purple, dropRect);
g.DrawString("Drop Image Here..", new Font("Times New Roman", 25),Brushes.Yellow, dropRect);
}
}