Winform控件Picture實(shí)現(xiàn)圖片拖拽顯示效果
最近做了一個(gè)小工具,在Winform中對(duì)Picture控件有一個(gè)需求,可以通過(guò)鼠標(biāo)從外部拖拽圖片到控件的上,釋放鼠標(biāo),顯示圖片!
首先你需要對(duì)你的整個(gè)Fom窗口的AllowDrop設(shè)置Ture
//函數(shù)從動(dòng)態(tài)鏈接庫(kù)中倒入(模擬鼠標(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)拖入圖片的絕對(duì)路徑 private void Form1_DragDrop(object sender, DragEventArgs e) { //獲取當(dāng)前推拽圖片的路徑 string path1 = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString(); ; path_url = path1; //模擬鼠標(biāo)釋放鼠標(biāo)左鍵的時(shí)事件 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會(huì)出現(xiàn)QQ的聊天信息中的圖片丟失 //Link和Move不能從QQ的聊天記錄中拖拽圖片到WinForm窗體中,Copy和Scroll都可以實(shí)現(xiàn),推薦使用Copy e.Effect = DragDropEffects.Copy; else e.Effect = DragDropEffects.None; }
在來(lái)設(shè)置PictureBox的事件
//當(dāng)鼠標(biāo)在當(dāng)前控釋放的時(shí)候觸發(fā)控件 private void pic_1_MouseUp(object sender, MouseEventArgs e) { //給PictureBox設(shè)置圖片路徑 pic_1.ImageLocation = path_url; }
以上就可以完成推拽圖片顯示圖片(無(wú)論是本地還是QQ消息框中的圖片都可以實(shí)現(xiàn))
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- C#日期控件datetimepicker保存空值的三種方法
- winform dateTime數(shù)據(jù)類型轉(zhuǎn)換方法
- c# Winform自定義控件-儀表盤功能
- WinForm IP地址輸入框控件實(shí)現(xiàn)
- WinForm實(shí)現(xiàn)鼠標(biāo)拖動(dòng)控件跟隨效果
- winform實(shí)現(xiàn)可拖動(dòng)的自定義Label控件
- 使用重繪項(xiàng)美化WinForm的控件
- C# winform自定義翻頁(yè)控件詳解
- C# WinForm實(shí)現(xiàn)窗體上控件自由拖動(dòng)功能示例
- Winform控件SaveFileDialog用于保存文件
- C#中WinForm控件的拖動(dòng)和縮放的實(shí)現(xiàn)代碼
- C# WinForm-Timer控件的使用
相關(guān)文章
Unity接入高德開(kāi)放API實(shí)現(xiàn)IP定位
這篇文章主要為大家介紹了Unity如何接入高德開(kāi)放API實(shí)現(xiàn)IP定位功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定參考價(jià)值,需要的可以參考一下2022-04-04使用JsonConverter處理上傳文件的路徑問(wèn)題
我們上傳一個(gè)文件,把文件保存到服務(wù)器上,會(huì)有一個(gè)明確的物理路徑,由于需要從前端訪問(wèn)這個(gè)文件,還需要web服務(wù)器中的一個(gè)虛擬路徑,我們可以使用JsonConverter 來(lái)自動(dòng)處理一下,這篇文章主要介紹了使用JsonConverter處理上傳文件的路徑,需要的朋友可以參考下2022-12-12C#(int)中Convert、Parse、TryParse的區(qū)別
Convert.ToInt32、int.Parse(Int32.Parse)、int.TryParse、(int) 四者都可以解釋為將類型轉(zhuǎn)換為 int,那它們的區(qū)別是什么呢?2013-04-04C#難點(diǎn)逐個(gè)擊破(6):C#數(shù)據(jù)類型與.net framework數(shù)據(jù)類型
最近開(kāi)始看Illustrator C#2008,這真是一本好書(shū),我讀計(jì)算機(jī)書(shū)籍這么多了,能讓我稱為好書(shū)的沒(méi)有多少。2010-02-02C#12中的Collection expressions集合表達(dá)式語(yǔ)法糖詳解
C#12中引入了新的語(yǔ)法糖來(lái)創(chuàng)建常見(jiàn)的集合,并且可以使用..來(lái)解構(gòu)集合,將其內(nèi)聯(lián)到另一個(gè)集合中,下面就跟隨小編一起學(xué)習(xí)一下C#12中這些語(yǔ)法糖的使用吧2023-11-11Unity UI實(shí)現(xiàn)拖拽旋轉(zhuǎn)
這篇文章主要為大家詳細(xì)介紹了Unity UI實(shí)現(xiàn)拖拽旋轉(zhuǎn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06