Csharp/CSharp Tutorial/GUI Windows Forms/Drag Move — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Версия 18:31, 26 мая 2010
Drag and Drop Image
<source lang="csharp">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); }
}</source>