最近做了一個小工具,在Winform中對Picture控件有一個需求,可以通過鼠標(biāo)從外部拖拽圖片到控件的上,釋放鼠標(biāo),顯示圖片!
創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的遂昌網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
首先你需要對你的整個Fom窗口的AllowDrop設(shè)置Ture
//函數(shù)從動態(tài)鏈接庫中倒入(模擬鼠標(biāo)事件) [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; //模擬鼠標(biāo)左鍵按下 const int MOUSEEVENTF_LEFTUP = 0x0004; //模擬鼠標(biāo)左鍵抬起 //設(shè)置靜態(tài)字段傳遞圖片路徑參數(shù) public static string path_url; //獲取鼠標(biāo)拖入圖片的絕對路徑 private void Form1_DragDrop(object sender, DragEventArgs e) { //獲取當(dāng)前推拽圖片的路徑 string path2 = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString(); ; path_url = path2; //模擬鼠標(biāo)釋放鼠標(biāo)左鍵的時事件 mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_LEFTUP, Cursor.Position.X, Cursor.Position.Y, 0, 0); } //判斷鼠標(biāo)拖入文件的類型判斷是不是文件類型 private void Form1_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) //需求有一需要從QQ的聊天記錄中拖拽圖片到WinForm窗體中,用ALL會出現(xiàn)QQ的聊天信息中的圖片丟失 //Link和Move不能從QQ的聊天記錄中拖拽圖片到WinForm窗體中,Copy和Scroll都可以實現(xiàn),推薦使用Copy e.Effect = DragDropEffects.Copy; else e.Effect = DragDropEffects.None; }
在來設(shè)置PictureBox的事件
//當(dāng)鼠標(biāo)在當(dāng)前控釋放的時候觸發(fā)控件 private void pic_1_MouseUp(object sender, MouseEventArgs e) { //給PictureBox設(shè)置圖片路徑 pic_1.ImageLocation = path_url; }
以上就可以完成推拽圖片顯示圖片(無論是本地還是QQ消息框中的圖片都可以實現(xiàn))
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。