2015-01-13 119 views
0

大約一個月前,Idle_Mind在開發視覺基本桌面應用程序方面得到了一些很好的幫助,孩子們可以按照正確的順序拖放圖片(圖片框)。我已經展示了Idle_Mind下面提供的代碼。它的作品非常漂亮,並且被學生們喜歡。在網頁上拖放圖片

現在,我試圖在網站上重新創建應用程序。我正在使用Visual Web Developer 2008 Express。在「代碼隱藏」中使用相同的代碼會產生很多錯誤。看起來Image控件沒有相同的拖放屬性。

我應該試圖在「後面的代碼」中從Visual Basic中創建這些拖放行爲,還是應該試圖用html完成此操作? Visual Web Developer使用Visual Basic.net和XHTML 1.0 Transitional(我相信)

與往常一樣,謝謝!

Public Class Form1 

    Private Source As PictureBox = Nothing 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
     For Each PB As PictureBox In Me.Controls.OfType(Of PictureBox)() 
      PB.AllowDrop = True 
      AddHandler PB.MouseMove, AddressOf PBs_MouseMove 
      AddHandler PB.DragEnter, AddressOf PBs_DragEnter 
      AddHandler PB.DragDrop, AddressOf PBs_DragDrop 
      AddHandler PB.DragOver, AddressOf PBs_DragOver 
     Next 
    End Sub 

    Private Sub PBs_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) 
     Dim PB As PictureBox = DirectCast(sender, PictureBox) 
     If Not IsNothing(PB.Image) AndAlso e.Button = Windows.Forms.MouseButtons.Left Then 
      Source = PB 
      PB.DoDragDrop(PB.Image, DragDropEffects.Copy Or DragDropEffects.Move) 
     End If 
    End Sub 

    Private Sub PBs_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) 
     If e.Data.GetDataPresent(DataFormats.Bitmap) Then 
      If My.Computer.Keyboard.CtrlKeyDown Then 
       e.Effect = DragDropEffects.Copy 
      Else 
       e.Effect = DragDropEffects.Move 
      End If 
     Else 
      e.Effect = DragDropEffects.None 
     End If 
    End Sub 

    Private Sub PBs_DragOver(sender As Object, e As DragEventArgs) 
     If e.Data.GetDataPresent(DataFormats.Bitmap) Then 
      If My.Computer.Keyboard.CtrlKeyDown Then 
       e.Effect = DragDropEffects.Copy 
      Else 
       e.Effect = DragDropEffects.Move 
      End If 
     Else 
      e.Effect = DragDropEffects.None 
     End If 
    End Sub 

    Private Sub PBs_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) 
     Dim PB As PictureBox = DirectCast(sender, PictureBox) 
     PB.Image = e.Data.GetData(DataFormats.Bitmap) 
     If e.Effect = DragDropEffects.Move Then 
      If Not (PB Is Source) Then 
       Source.Image = Nothing 
      End If 
     End If 
    End Sub 

End Class 
+2

Web應用程序不是桌面應用程序,它是一個完全不同的技術堆棧。這種情況下的代碼隱藏完全在服務器端運行,不能與用戶界面實時交互。你會想看看在JavaScript中實現這個功能。幸運的是,諸如拖放功能等廣泛使用的插件可以提供幫助。例如,看看jQuery UI插件。或interact.js,甚至只是MDN文檔:https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Drag_and_drop – David

+0

@大衛這可能是一個好的答案。 – Panzercrisis

+0

@Panzercrisis:我不確定,因爲它不是一個「回答」,因爲它是進一步資源的方向。但重新閱讀這個問題,我想你是對的。真的沒有其他辦法可以回答它。 – David

回答

1

Web應用程序不是桌面應用程序,它是一個完全不同的技術堆棧。

這種情況下的代碼隱藏完全在服務器端運行,不能實時與用戶界面交互。您需要考慮在JavaScript中實現此功能。

幸運的是,諸如拖放功能之類的東西已被廣泛使用的插件提供幫助。例如,看看jQuery UI plugins。或者interact.js。 (請參閱他們網站上的演示,瞭解您需要尋找哪種功能。)或甚至只需the MDN documentation

它不會像複製和粘貼代碼那麼簡單。但是在網上有很多資源可以幫助你實現功能。