Winform中Picture控件圖片的拖拽顯示

註解:最近作了一個小工具,在Winform中對Picture控件有一個需求,能夠經過鼠標從外部拖拽圖片到控件的上,釋放鼠標,顯示圖片!函數

  1. 首先你須要對你的整個Fom窗口的AllowDrop設置Ture

         

        //函數從動態連接庫中倒入(模擬鼠標事件)工具

       [System.Runtime.InteropServices.DllImport("user32")]
        private static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
        const int MOUSEEVENTF_LEFTDOWN = 0x0002; //模擬鼠標左鍵按下 

        const int MOUSEEVENTF_LEFTUP = 0x0004; //模擬鼠標左鍵擡起 
        //設置靜態字段傳遞圖片路徑參數
        public static string path_url;
//獲取鼠標拖入圖片的絕對路徑
private void Form1_DragDrop(object sender, DragEventArgs e) {
//獲取當前推拽圖片的路徑
string path1 = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString(); ; path_url = path1;
//模擬鼠標釋放鼠標左鍵的時事件 mouse_event(MOUSEEVENTF_LEFTUP
| MOUSEEVENTF_LEFTUP, Cursor.Position.X, Cursor.Position.Y, 0, 0); } //判斷鼠標拖入文件的類型判斷是否是文件類型 private void Form1_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop))
//需求有一須要從QQ的聊天記錄中拖拽圖片到WinForm窗體中,用ALL會出現QQ的聊天信息中的圖片丟失
//Link和Move不能從QQ的聊天記錄中拖拽圖片到WinForm窗體中,Copy和Scroll均可以實現,推薦使用Copy e.Effect
= DragDropEffects.Copy; else e.Effect = DragDropEffects.None; }

  

     4.在來設置PictureBox的事件url

    

//當鼠標在當前控釋放的時候觸發控件
private void pic_1_MouseUp(object sender, MouseEventArgs e) {
//給PictureBox設置圖片路徑 pic_1.ImageLocation
= path_url; }

 5.以上就能夠完成推拽圖片顯示圖片(不管是本地仍是QQ消息框中的圖片均可以實現)spa

相關文章
相關標籤/搜索