Drag&Drop عکس از محیط ویندوز به داخل PictureBox
یک برنامه ویندوزی ایجاد کنید و یک کنترل PictureBox بر روی فرم قرار دهید:
خاصیت AllowDrop فرم را برابر True قرار دهید. و سپس حال کدهای زیر را در رویدادهای DragDrop و DargEnter فرم بنویسید:
using System; using System.Drawing; using System.Windows.Forms; using System.Threading; using System.IO; namespace DragAndDropintoPictureBox { public partial class Form1 : Form { protected bool validData; string path; protected Image image; protected Thread getImageThread; public Form1() { InitializeComponent(); } protected void LoadImage() { image = new Bitmap(path); } private bool GetFilename(out string filename, DragEventArgs e) { bool Return = false; filename = String.Empty; if ((e.AllowedEffect & DragDropEffects.Copy) == DragDropEffects.Copy) { Array data = ((IDataObject)e.Data).GetData("FileDrop") as Array; if (data != null) { if ((data.Length == 1) && (data.GetValue(0) is String)) { filename = ((string[])data)[0]; string Extension = Path.GetExtension(filename).ToLower(); if ((Extension == ".jpg") || (Extension == ".png") || (Extension == ".bmp")) { Return = true; } } } } return Return; } private void Form1_DragEnter(object sender, DragEventArgs e) { string filename; validData = GetFilename(out filename, e); if (validData) { path = filename; getImageThread = new Thread(new ThreadStart(LoadImage)); getImageThread.Start(); e.Effect = DragDropEffects.Copy; } else e.Effect = DragDropEffects.None; } private void Form1_DragDrop(object sender, DragEventArgs e) { if (validData) { while (getImageThread.IsAlive) { Application.DoEvents(); Thread.Sleep(0); } pictureBox1.Image = image; } } } }
حال برنامه را اجرا و یک عکس از محیط کامپیوتر بر روی فرم بکشید و رها کنید.