自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

講述VB.NET實現(xiàn)拖動圖片

開發(fā) 后端
這里介紹盡管VB.NET實現(xiàn)拖動圖片并不像拖放文本那樣經常用到,然而它在許多應用程序中仍然是很有用的。實際上這兩者之間也沒有什么不同,只不過是數(shù)據(jù)類型發(fā)生了變化而已。

學習VB.NET時,你可能會遇到VB.NET實現(xiàn)拖動圖片問題,這里將介紹VB.NET實現(xiàn)拖動圖片問題的解決方法,在這里拿出來和大家分享一下。盡管VB.NET實現(xiàn)拖動圖片并不像拖放文本那樣經常用到,然而它在許多應用程序中仍然是很有用的。實際上這兩者之間也沒有什么不同,只不過是數(shù)據(jù)類型發(fā)生了變化而已。
1、 在Form中添加兩個PictureBox控件。
2、 在代碼窗體中添加如下代碼

  1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _  
  2. System.EventArgs) Handles MyBase.Load  
  3. ' Enable dropping.  
  4. PictureBox2.AllowDrop = True 
  5. End Sub  
  6.  
  7. Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As _  
  8. System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown  
  9. If Not PictureBox1.Image Is Nothing Then  
  10. ' Set a flag to show that the mouse is down.  
  11. m_MouseIsDown = True 
  12. End If  
  13. End Sub  
  14.  
  15. Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As _  
  16. System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove  
  17. If m_MouseIsDown Then  
  18. ' Initiate dragging and allow either copy or move.  
  19. PictureBox1.DoDragDrop(PictureBox1.Image, DragDropEffects.Copy Or _  
  20. DragDropEffects.Move)  
  21. End If  
  22. m_MouseIsDown = False 
  23. End Sub  
  24.  
  25. Private Sub PictureBox2_DragEnter(ByVal sender As Object, ByVal e As _  
  26. System.Windows.Forms.DragEventArgs) Handles PictureBox2.DragEnter  
  27. If e.Data.GetDataPresent(DataFormats.Bitmap) Then  
  28. ' Check for the CTRL key.  
  29. If e.KeyState = 9 Then  
  30. e.Effect = DragDropEffects.Copy  
  31. Else  
  32. e.Effect = DragDropEffects.Move  
  33. End If  
  34. Else  
  35. e.Effect = DragDropEffects.None  
  36. End If  
  37. End Sub  
  38.  
  39. Private Sub PictureBox2_DragDrop(ByVal sender As Object, ByVal e As _  
  40. System.Windows.Forms.DragEventArgs) Handles PictureBox2.DragDrop  
  41. ' Assign the image to the PictureBox.  
  42. PictureBox2.Image = e.Data.GetData(DataFormats.Bitmap)  
  43. ' If the CTRL key is not pressed, delete the source picture.  
  44. If Not e.KeyState = 8 Then  
  45. PictureBox1.Image = Nothing 
  46. End If  
  47. End Sub 

注意到上面的例子中第二個PictureBox控件的AllowDrop屬性是在Form1_load事件中設置的,這是因為設計時PictureBox并沒有AllowDrop屬性。在MouseDown事件中,代碼首先檢測是否有要賦給PictureBox的圖片;如果沒有的話,當你移動圖片后,接下來的click將引發(fā)一個意外。還應該注意到的是在DragEnter和DragDrop事件中代碼檢測CTRL鍵是否被按下,從而決定是否是復制還是VB.NET實現(xiàn)拖動圖片。

為什么值會不同呢?在 DragEnter事件中,當鼠標左鍵按下時,產生的值是1,在加上CTRL的值8,從而值為9。見KeyState枚舉列表DragEventArgs.KeyState Property到目前為止,這兩個例子處理的都是同一窗體不同控件間的拖放,然而在同一應用程序的不同窗體上同樣適用。

【編輯推薦】

  1. 深入分析VB.NET條件語句中的兩類
  2. 五大類VB.NET運算符全面介紹
  3. 全面討論VB.NET申明Windows API函數(shù)
  4. 剖析VB.NET平臺調用是如何執(zhí)行操作
  5. 分享個人總結VB.NET多線程
責任編輯:佚名 來源: 比特網
相關推薦

2009-10-29 09:57:16

VB.NET實現(xiàn)數(shù)據(jù)綁

2009-10-21 10:45:50

VB.NET Quic

2009-10-14 17:08:44

VB.NET使用Fil

2009-10-16 13:26:53

VB.NET Exce

2009-10-15 11:11:08

VB.NET Text

2009-10-14 11:15:06

VB.NET Grou

2009-10-15 16:39:00

VB.NET讀取INI

2009-10-10 16:44:52

VB.NET開發(fā)控件

2009-10-12 16:39:59

OracleTransVB.NET使用

2009-10-13 17:03:55

VB.NET面向對象

2009-11-02 15:45:03

VB.NET IEnu

2009-10-19 08:55:22

VB.NET多重繼承

2009-10-16 09:35:24

VB.NET制作透明窗

2009-10-22 09:20:46

VB.NET Proc

2009-10-26 18:11:47

VB.NET調用Exc

2009-10-21 18:28:48

VB.NET表間拖放

2009-10-26 19:22:29

VB.NET使用Log

2009-10-27 11:39:03

VB.NET事件處理程

2009-10-12 13:40:47

VB.NET Data

2009-11-03 17:31:01

VB.NET窗體
點贊
收藏

51CTO技術棧公眾號